It's probably reasonable to assume that a voter who finds himself/herself voting for a third party candidate will discover there is a counter vote out there for some other third party candidate, so it doesn't follow that if you are not voting for one of the major party candidates, you are casting a vote for McCain.
Myself, for instance, I'm registered "Green." If I vote for the Green Party candidate, somebody else will vote for the Libertarian candidate. We can both take comfort in the fact that neither one of us did anything to advance the insanity that the two major parties are trying so desperately to impose on the American people.