A quick answer.....money. It takes HUGE amounts of money in American politics to become a viable candidate. The Democratic and Republican parties have virtually unlimited resources to spend on advertising, phone call banks, television commercials, etc. For an independent or third party to get off the ground is virtually impossible due to the enormous financial problems it would face.

In America, grassroots candidates sound really nice, but they are a waste of a vote, other than to have the intrinsic feeling of satisfaction from voting your conscience. But it's not likely that anyone on the national level can muster enough money to seriously challenge for public office.

Onward!