We all know that the election system has problems, apart from the current risk of "computer glitches" and disenfranchisement. A two-party system will perpetuate under the current style of voting, because no one wants to "throw away their vote."
However, electile disfunction can even plague a party who is not working at cross-purposes with itself. As RHunger noted on another comment thread, lots of Democrats voted for Kerry in the primaries because they believed their favored choice was "unelectable". That's a shame- it doesn't let the Democrats know what type of leaders they really favor. Is there a better solution?
America's most common voting system is known as a Single Member Plurality voting system. It's very straight-forward; you pick one candidate, and one only. Whoever gets the most votes wins the election.
However, it does have obvious flaws. The most glaring is that when two of the choices are favored by a majority, a vote for a third choice is considered "thrown away." Imagine if the 2000 Election was done using Instant Runoff voting? People would record a first, second, and third choice for president. No one could blame the Naderites for giving the election to Bush, because though they would have voted for Nader first, their second choice would likely have been Gore; the method used in IRV would ensure their votes weren't thrown away.
Australia commonly uses IRV. In America, Berkeley and San Francisco used it in certain races in the last few elections. It may be an ideal way to solve some of the problems associated with the two-party system.
Another option is At-Large voting, where you pick multiple candidates, and the votes are totalled. The candidate with the most votes still wins- but you can pick your favorites, giving you more of a voice in the election.
Obviously, a bi-partisan agreement for this sort of election reform will never take place- single-member plurality voting benefits the GOP far too much for them to agree to change it. However, there is a place to start- the Primaries. Why not use IRV or at-large voting in party primaries? It would ensure that people could vote for their favorite candidates without risking throwing their vote away. It would also ensure political parties will get real candidates to run in the presidential election, rather than forcing voters to make a Hobson's choice, or voting for the lesser of two evils.
* - Source website for types of elections: http://www.mtholyoke.edu/acad/polit/damy/BeginnningReading/types.htm