What does it mean, exactly, to say that the US has a two party system? Why does "everyone know" that a third party can't win an election? Is there anything actually stopping them from doing so, other than that "everyone knows" not to waste their vote on third parties?
Well, that's not wrong, but I don't think it's quite that simple, either. The two main parties represent (or at least successfully present themselves as representing) fundamentally different views of American society. Most third parties either focus specifically on one issue (the environment), one philosophical tact that's not really seen as mainstream enough to hold with the Big Two (libertarianism*), or simply being all-around on the fringe.
So, while there's certainly a degree of "don't waste your vote," I think there's more to it than that. We have a dualistic mindset in general, with most of the country seeing our society in a tug-of-war between conservatism and liberalism, with the Republicans and Democrats seen as embodying those two positions.
To end the two-party system, you'd have to either change the perception that those parties represent those fundametal values, or change the perception that American society is driven by a dualistic struggle between those two value systems.
It would also probably help if the constitution could be amended (ha, good luck) to allow coalition governments similar to the parliamentary system in the UK, but that fundamental perceptual view of the party system has to be the first step, I think.
* I hold a lot of libertarian views myself. It's not a put-down. It's just a fact that most of the country don't see conservatism, liberalism, and libertarianism as the three primary forces driving the push-pull of our society.