The biggest reasons for McCain doing well were, IMHO, his war record and the amount of positive media coverage he received. Quite a few Independents also jumped into the GOP primaries to support him since he was considered an "outsider" (and to screw up the GOP primary by voting for the most liberal guy).
Once his real record was exposed, his support dropped.
Bush was always the front runner due to name recognition. As early as 1998, he was being pushed by the GOP elites solely due to his name recognition. I was fairly active in GOP politics (at the grassroots level) in 2000, and as such got to speak to quite a few Republicans. Many of them liked Keyes or Forbes better than Bush, but believed the lie anyone except for Bush was "unelectable". (As for this point, I'm thankful that Republicans in 1980 had enough backbone to support the "unelectable" Reagan)
As such, Bush took an early lead in the primaries. In a (successful) effort to get conservatives motivated behind him, he adopted a conservative platform of tax cuts, vouchers, and social security privatization.
In a nutshell, he won because he was the party's "annointed one", because he convinced people that he was a real conservative, and conservatives were so desperate to have the corrupt Clinton/Gore regime out of DC, that they voted for the guy that was presented to them as the most electable.