well the funny thing is that most americans are pretty centrist, and neither party can really go too far from that and expect to get elected. so what we end up with are two parties that are just right of and just left of center. typically most third parties are further away from the center, and with the polarizing issues you alluded to (civil unions, gun ownership, abortions, universal health care; no one party would ever be able to find the center.
that said, a lot of the problem also comes from misinformation fed to and the general apathy of most americans. most of us are happy to find someone who thinks like us for the most part and then buy the pap that supports our guy and cuts down the other one. so if guy x is close to our p.o.v., and we're made to fear guy y, we're likely to never even consider guy z.
i think the only way really to get away from the two-party nonsense we're embedded in is to wake people up a bit. maybe hard times are the best thing for this country now, maybe people will start to pay attention... but i'm not hopeful.