>Over the years, I have noticed by observing professors, parents of friends >and fellow grad students, that Indians, as a whole speak English as a second >language very well. Much better, generally, than people from east Asia and >often even better than Europeans. Is there a generally accepted reason for >this? Do educated Indians, since India is a former British colony, simply >learn English earlier? Is there some aspect of Hindi that aids in the >learning of English? Indians generally lack the "foreign" accent that >others have. Is that because the natural Indian accent is pretty close to >an American mid-western accent? And why is it that many Indians, although >they speak English quite well, have difficulty with the "v" sound? >Disclaimer: The above are generalizations. I have met Indians that speak >with a strong accent and I have a friend from China who speaks English >incredibly well with little accent.Well, I don't think I'd agree that Indians have better accents than other Asians; they just have different accents. By the way, let's be clear here: I'm speaking of Indians as inhabitants of the Indian subcontinent, including Bharat (India), Pakistan, Sri Lanka (Ceylon), and Bangla Desh (Free Bengal), and speaking natively whatever languages they happen to speak. Not Indian-Americans, who tend to speak native American English with no discernible accent.
Whatever it is that you've observed, there surely is some explanation, actually probably several, acting together, as things tend to do with respect to language. One very important reason is that English is very widely spoken in India, as a result of the British Raj. It is not the national language, though -- that's Hindi, the language of the most populous Northern states, with lots of political clout.
Hindi is the single language with the most native speakers in India; Urdu, which is mostly the same language as Hindi, but written in Arabic instead of Devanagari letters, and with Arabic and Persian loanwords instead of Sanskrit, is the national language of Pakistan, but is spoken natively only by about 10% of the population (Punjabi, Pashto, and Sindhi together account for over 50%). But the language (which used to be called Hindustani before partition) is spoken by a distinct minority of Indians, because there are so many languages with so many native speakers in India. As Rajiv Gandhi said: "Very big, India."
And Hindi isn't a popular language in many places in India. In the Dravidian areas in the South (Tamil Nadu, Kerala, Mysore, etc.) you can get in trouble speaking Hindi. So English is safer, since everybody despises Perfidious Albion alike, while Perfidious Delhi is a variable.
Second, the educational system is another relic of colonialism and is largely (especially at the post-secondary level) conducted in English. So if you're college-educated (as a surprisingly large number of Indians are, leading to its current state as a software exporter, among other things), you're literate in English, always a big help.
In fact, Indian English is a recognized dialect of English, just like British Received Pronunciation (RP, or BBC English) or Australian English, or Standard American. It has a lot of distinctive pronunciations, some distinctive syntax, and quite a bit of lexical variation. And it can be as hard for Americans to understand as Scots English, especially if spoken at speed, which it frequently is, in my experience.
For further information on Indian English, dialects, World Englishes, pronunciation, foreign accents, and the like, let me recommend most strongly two encyclopedic works by the renowned English scholar David Crystal:
From: Cambridge Encyclopedia of the English Language
(Cambridge University Press, 1995, page 360):