There's a couple reasons we have a two party system.
First, our plurality/winner take all election system. People only take an office with the highest vote total. In some other democratic republics, they use proportional representation, where if a party gets 60% of the vote, they get 60% of the seats, instead of 100%, and the "losers" still get to divide up the other 40%. That encourages third parties (in some cases, almost too much), whereas in our system, if people don't like the person/party who's most likely to win, they're likely to choose someone slightly less bad just to keep that person/party from winning.
There are ways to avoid this and still use a winner-take-all system (which keeps our politics more individualized and prevents parties from having too much influence), such as ordinal (ranked) voting or cardinal (approval/disapproval rather than 1 vote) voting. IRV is probably the best known form of ordinal voting, although it's kind of flawed, and Condorcet voting works better. Check
http://www.electionmethods.org for more.
Gah.... I can't remember the other reason right now. I know there is one. I knew I shoulda stayed awake in my political parties class.....