The sickening thing that makes this a reality is that our politicians control our electoral process. Why would they change a process that put them in power to allow other parties to steal votes from them? Naturally, they wouldn't. It's really a major conflict of interests and it steals the voices of a significant part of the American population whose values don't align with either of the two main parties.
It can happen, but it just takes time for the primary parties to fundamentally change. As some people like to say, the Republican party 150 years ago is now the Democratic party and the Democratic party 150 years ago is now the Republican party. So they can change but it takes time. That change comes from the people. Each generation is different, and I know already that my generation of Republicans is a lot different from other generations of Republicans.
Now if I change from being an engineer to politician, maybe I could help change the Republican party...hmmmm. But as my dad said, stick with the nobler profession.