This is the peril of the two-party system. You can't have a third option because that option will split either the right or the left vote and ultimately lose. You can blame gerrymandering for a lot of this.
Actually, you can blame the primary itself for this. When you disenfranchise a large part of a party's population, they either ignore the election (after all, their guy isn't running) or they encourage the split so that their guy does run. Either way, you are asking for trouble with a primary that is supposed to eliminate everyone but the chosen.