Serial communications specifics

Crow:
Also, the Arduino seems to have some weird logical rules, I've got "If" statements that seem to run all the time, regardless of the condition being tested.

This is the Gnu C++ compiler you are talking about here. If it had "weird logical rules" your iPhone wouldn't work.

Perhaps show some examples?