In a presidential run, he would have the votes of millions who disagree with him on major issues but like him anyway. His challenge is to get the votes of more people who agree with him. The fact that his base of support is people who disagree with him explains both why so many ideological soul mates dislike him, and why they may support him anyway. It’s because they think he is their best shot at winning. Thus if McCain becomes president, it will be the result of a cynical calculation by people who don’t like him even though they agree with him, on top of support by people who disagree with him but admire his lack of cynicism.
Michael Kinsley plays McCain a series of backhanded complements in this must read article from Slate. Must read unless you’re a big McCain fan, in which case you shouldn’t read it.