I thought Elizabeth Bumiller did a really good opening here for The New York Times:
Senator John McCain likes to present himself as the candidate of the “Straight Talk Express” who does not pander to voters or change his positions with the political breeze. But the fine print of his record in the Senate indicates that he has been a lot less consistent on some of his signature issues than he has presented himself to be so far in his presidential campaign.
Mr. McCain, who derided his onetime Republican competitor Mitt Romney for his political mutability, has himself meandered over the years from position to position on some topics, particularly as he has tried to court the conservatives who have long distrusted him. His most striking turnaround has been on the Bush tax cuts, which he voted against twice but now wants to make permanent. Mr. McCain has also expressed varying positions on immigration, torture, abortion and Donald H. Rumsfeld, the former defense secretary.
Mr. McCain’s advisers say that he has evolved rather than switched positions in his 25-year career in the House and Senate and that he has been remarkably consistent on his support for the war in Iraq and the American troop escalation there.
I think things go a bit downhill from there, but this captures the essence of the matter quite well. Since the late-1990s, John McCain has expressed a very clear and consistent preference for very aggressive use of unilateral American military force. He broke with the GOP leadership to support intervention in Kosovo, then he broke with the Clinton administration to argue for a land invasion and a more sweeping conception of victory. He called for a policy of "rogue state rollback" in 1999, and attacked Bush from the right on foreign policy in 2000. He supported invading Iraq in 2002, argued that more troops should be sent ever since 2003, and is basically a rock-ribbed hawk.
But on other issues, McCain's stances tend to meander. I think it's perhaps counterproductive to speculate as to precisely why this is. But precisely because he has broken with the GOP on a potpurri of issues, but rarely done so with a great deal of consistency, he's really quite a bit more flip-floppety than the average politician even as he relies on his image as a consistent "straight talker" quite a bit more than your average pol.