I wonder how many times in total McCain has not voted for the GOP nominee. Some people here are suggesting he voted for Kerry in 2004, but what about 2000? I can't imagine him voting for Bush after the nastiness of the 2000 primary.
My instinct would be to assume that most politicians are actually telling the truth with respect to who they voted for. It's not like a single vote is likely to swing the entire election, and simply voting for the person you publicly said you'd vote for means that you don't have to keep track of which lies you've told.
I could definitely imagine politicians lying about votes in the relatively distant past. For instance, McCain might not have voted Bush in 2000, but it would have hurt him to say otherwise in the 2008 primary.