First, the two political parties are very old and well established in society with very deep roots both institutionally and among the people. Both enjoy almost all of the mainstream media coverage that projects them as the only alternatives within a framework of democracy where nothing outside of the two exists for it would pose a threat. Both parties enjoy substantial financial contributions from private sources, something that makes them difficult to defeat in costly elections if you run as an "Independent" candidate with nothing more than enthusiasm and idealism to do good things for all people and not a small group that pays for your campaign.
Although it is true that both agree on the economic system and social structure, there are differences, mainly in social and cultural issues where Republicans tend to be driven by dogmatism infused with a heavy dose of religion in obvious and opportunistic ways that often prove to be hypocritical. Not that Republicans have monopoly on hypocrisy, but how often have we seen that good Christian Republican politicians have been engaged in less than pious conduct in secret while morally judging the rest of sinners that include gays, minorities, and women.
On minorities, women, gays and the popular social classes there are distinct differences between Republican and Democrat driven partly by ideology and partly by traditional values that could be traced back to the era of the Progressive Movement (1890s to mid-1910s) that left its imprint on 20th century American history. The emergence of the broader popular classes, including consciousness-raising among women and minorities, as a result of rapid industrialization meant that the political system would have to change as well to keep up with the evolving social movements.
The Republicans in the 1920s reacted very negatively to social-cultural progress (there was a resurgence of the KKK and conservatism linked to Christian fundamentalism). Under FDR, Democrats were much more receptive to social change, largely because society was in a deep economic crisis. The legacy of the "Progressive Movement" as it evolved throughout the 20th century was one that progressive Democrats embraced - mainly representing the urban areas and mostly the northeast, upper Midwest and West coast. Republicans kept their ideological hold rooted in rural America, mostly in the South, but in other parts of the country where the agricultural economy played a major role.
Republicans linked "American identity" with the rural areas, religion, gun ownership and resistance to sociocultural change that would permit equality with white males of minorities, gays, women and the poor. The sense of loss of identity in terms of what it means to be an American is inexorably linked to the political party as long as the leaders at the time of election appear to be convincing to the voters. In short, there is an emotional or psychological factor here, so we cannot always try to look at the issue from a rational perspective, because people simply do not vote their own interests.
Both parties have some important differences on social policy, with Democrats favoring a stronger middle class and a social safety net for the poor, while Republicans see the social safety net (welfare state) as a burden to the taxpayer. They have some peripheral differences on economic and fiscal/monetary policy, again with Democrats having a bit more sensitivity to high rates of unemployment and poverty, while Republicans would permit the state-supported marketplace to "devour the poor." Why does anyone who is not well off vote Republican, given the economic, fiscal/monetary policy of the party favors the rich? Because people aspire to be rich and believe the Republicans are best able to deliver the American Dream, while the Democrats want to force social welfare down the throat of America and equalize those who believe in elitism.
The two main parties have only marginal differences on foreign policy, with Republicans having a greater affinity to unilateral approach to diplomacy, if not neo-isolationism, 