Why do they do this? Because the politicians who spend the most money on advertising generally win the elections, right? I'm wondering if what we're seeing here is the failure of democracy with universal suffrage. Most of the voters don't seem to be independent thinkers. They could have voted for politicians who haven't been "bought". But they don't. For example, there are other political parties out there - Green Party, Libertarian Party etc., but almost nobody votes for those.
This problem of plurality mechanics could be largely addressed by instant runoff voting [2], which allows people to vote for their true preferences without fear of throwing their vote away. Of course the people in power don't want to make it harder to retain power, so getting something like this implemented is very difficult without a referendum.
This is just my speculation, but it seems that a two-party system removes most of the incentive for pursuing nuanced, independent thought. The depth of the decision you have to make is choosing one team or the other, and defaulting to their stances on most issues, or by a mix of resignation and cognitive dissonance, ignoring the areas of disagreement. And once you've made the decision for which team to be on (or inherited from your parents), it's usually set-it-and-forget-it.
[1] - https://en.wikipedia.org/wiki/Duverger%27s_law [2] - https://en.wikipedia.org/wiki/Instant-runoff_voting
The parties outside the main two cannot win because they're always going to be a minority. If a minority could still hold a minority of the seats for getting a minority of the votes, the landscape would be vastly different.
Instead, we have an average vote system based on geographic region that can only allow for major parties to hold seats.
This is not the case in all democracies - most european parliaments have more than two parties because of the difference in the way minority votes are handled.
This is a failure of US-flavor representative democracy.
If you make voting a requirement, like paying your taxes. It changes the environment around an election. You spend less time and money trying to convince apathetic voters to take time out of their work day to vote.
I know this is unpopular to say, but if you'd like to make a difference in governance, you have to pay for it.
Granted, most people don't, and most people probably don't even know the names of the people running besides those in the biggest races (they might know the presidential or mayoral candidates, but they often don't know the state senate or state party candidates).
I disagree about third parties though - it usually makes much more sense to try to make changes during the primary, then trying to make them with a third party (there are a few exceptions, of course).