This is exactly what I had in mind when I saw the title to this thread. This is the best way to make this scenario happen. The only other way to do it is have Gore win in 2000, serve two terms, have Romney win in 2008, and have Obama beat him in 2012. Only problem with that however is that if Gore doesn't invade Iraq, how does Obama successfully get into national politics? If you think about it (and I say this as someone who voted for him), Obama owes his victory in 2004 and owes his winning the Democratic nomination in 2008 to the Iraq war.
Well, he'd have a decent shot at winning the Senate nomination in 2004 regardless of the war, given that he was a charismatic liberal and an African-American in a state whose primary voters are disproportionately liberal and African-American.
His OTL '08 run couldn't have happened without his opposition to the Iraq War. But in 2012, he'd have been in the Senate for 8 years, and would be credible even without war opposition. Now, you could say it'd be harder to defeat Hillary in 2012 without the war in the way, but 8 years in the Senate would make it harder for Hillary to hit Obama with the experience card, and the changing demographics of the Democratic Party, in favor of the non-white electorate, would also benefit him.
OTOH, getting the WH to flip back to the Democrats after just one term out - following 16 years in power - would be difficult.
Also, without the '04 Democratic nomination open, Carol Moseley Braun might run for her old Senate seat (as she had been expected to do), instead of making a quixotic presidential bid, and Obama might opt out thinking he'd be unable to carry the AA vote in the primary.