While Obama managed a much bigger win in the electoral college than he did in the popular vote, the Republicans still have a built in advantage due to their popularity in sparsely populated states, like the one where I grew up.
All states get a number of electors proportional to their number of representatives in congress along with another two each for their two senators. This means that the "empty" states get a bigger bonus, percentage wise, from those extra two.
For example, my old home state of SD has 800,000 people and 3 electoral votes while my current state of Minnesota has 5.2 million people and 10 electoral votes. That's one electoral vote for every 267,000 people in SD but only one for every 520,000 people in Minnesota. A SD vote counts almost exactly double what a MN vote does. (California gets only one vote for every 664,000 people.) If we have to keep the electoral college it would be far more equitable to drop those extra two votes per state and make the elector count more in line with a state's population. The current system is horribly unfair to folks in big states but it's also generally unfair to Democrats.
5 out of the 7 states with populations under 1,000,000 are traditionally Republican. Their outsized electoral clout is a small but real advantage to republican presidential candidates. John McCain won 32% of the electoral votes this year but if we were to take away the two votes that each state gets for its senators he would have only won 29%. That's not a huge amount but sometimes it's hugely important. If in 2000 the electoral votes had just been alloted in proportion to a state's population (i.e. if two electoral votes had been dropped from each state) Gore would have won, even without Florida, 226 to 211.
(The people who should really be pissed about the system are Californians. You have to add up the population of the 20 smallest states to get the number of people in California. Those 20 states get 91 electoral votes to California's 55.)
It seems to me that winner-take-all per state is an even bigger distortion. I think we should take a long, hard look at picking electors by congressional district. That could be done without a constitutional amendment. "Each state shall appoint, in such manner as the Legislature thereof may direct, a number of electors, equal to the whole number of Senators and Representatives to which the State may be entitled in the Congress..."
If we did that, though, what about the extra two electors per state? Make those two winner-take-all? Says here that Maine and Nebraska do it that way, though it's never made any difference in the result. And of course in South Dakota, Wyoming, Delaware, Alaska, etc. nothing would change.
Yes, winner take all is huge. That's why two out of our 44 presidents have taken office after losing the popular vote. Or is it three? In 2000 folks talked the late 19th century race that had a popular vote winner losing the electoral vote. (Hayes? Harrison? I don't remember.) But I know in 1824 Jackson won the popular vote but lost when the election was thrown to the House. Don't remember if he won the electoral vote or not and I'm too lazy to look it up. In any case 4-7% of our elections have come out "wrong". That's not a huge percentage but enough that we should maybe do something about it.
One way around the whole thing is for states to adopt a rule that they shall award their electoral votes to whoever wins the popular vote nationwide.