Reason one: history.
Paul Mirengoff cites his pre-mortem
To quote [the English boarder] in Ulysses, it seems history is to blame. As far as I can tell, it is virtually unheard of for a president to go 4-0. To accomplish this, a president must be elected twice in a row and his party must avoid defeat in both off-year congressional elections. I don't know whether Andrew Jackson did it, but I don't believe it's been done since. Even 3-0 is rare. If a president is fortunate enough to be re-elected, odds are that the voters will punish him (and his party) in an off-year election.
Reason two: Bush and Congressional GOP leadership abandoned fiscal conservatism. A modest tax cut isn't enough. We voted for Bush in 2000 not only to turn back the Clinton/GHW Bush tax hikes, but also to bring government into spending control. Bush spent like a liberal Democrat (as I recall, one of those spending programs was an education sponsored by Ted Kennedy), and Congress refused to hold his feet to the fire. Hastert's Congress refused to read the tea leaves and take a serious blow at pork barrel spending. Republicans ax-murdered one of the chief distinctions between the two parties.
Republicans didn't make a bigger issue of the economy. Jobs are being created, unemployment is shrinking, incomes (and tax revenues) are going up. This should have been plastered all over campaign ads.
Bush infuriated Americans by pandering to illegal aliens. He went soft on enforcimg immigration law. Period. Sure, the Dems would play the racism car if he did otherwise, but that can be countered by highlighting that illegal alien amnesty is unfair to the many immigrants who play by the rules to get into this country.
Republicans did not counter the Democrat message on the war. Dems treated WMDs as if that were the only reason we invaded Iraq, claimed that no WMDs were found, regarded Saddam's nuclear ambitions as if they were nonexistent, and told us that the war is making no progress. The Republican PR machine should have constantly been doing the following: