i actually attribute that to the overall culture of india. i was in south india; chennai. the folks that live there have been in a caste system for a long time -- it's integral to their culture. when the caste system was abolished it didn't go away, it just manifested differently. russians can't exist without dictators, indians can't get by without brahmins.
at its core, it is a fundamental need for permission. it's not that indian software developers can't make decisions, and can't make good decisions -- they can. they're sharp folks. rather, there's an inherent prohibition within the culture not to jump without being told to. not to strike out on their own and forge new code. it's the injunction to wait for orders from a superior, or else face the consequences. it's a very subtle thing, a cultural trend that's hard to identify the origin of in an individual, just like it's hard to figure out why all americans need to have credit cards. credit cards are just what we do. they wait for someone to tell them to do something.
it's even more insidious than that, especially if you're closely partnered: if you tell them to do something, and it's a bad idea, 9 times out of 10 they won't correct you. i, as a fallible human, depend on other people to correct my dumbass mistakes, especially in matters of software development. no one gets everything right. that's what's so fantastic about pair programming -- both people get the best judgment of their partner. if you're paired with an indian, and they perceive that you are in a higher position than they (even if it's on a subconscious level), they'll follow you right into hell, or at least an ill-advised has_many :through relationship, even if they know better. it's the way they're raised, the way they live.
i'm not passing judgments on the culture, it just makes for bad programming partners and strange traffic patterns.