The real answer is the Republican failure of the past 8 years. Pretty much any competent democrat would've beaten McCain.
Yes, but the problem for McCain is that, if Bush were reasonably popular, it's unlikely that McCain ever could have won the GOP nomination. They would have nominated a more conventional Republican. McCain could only win the nomination with support from the sizable minority in the party who are disillusioned with Bush. If that group didn't exist, he wouldn't have gotten this far.