Actually the correlation is not quite with the language spoken. The situation is only slightly more complex. Thus, for example, a typical Telugu brahmin often follows the given-name first family-name last convention, though the language is not classified as Indo-European.
When cultural traits change rapidly in a certain region, we tend to define a line, called a `cline', separating the two regions. In India, lot of clines start near Maharashtra in the west run roughly eastward, but then after separating Madhya Pradesh (north) from Andhra Pradesh (South), the different clines (i.e. clines corresponding to the different characteristics) part ways, some leaving Bengal and Orissa with the South, and some leaving them in the North.
The North, only defined in this fuzzy fashion, speaks Indo European, uses given name first, uses animal fat for cooking, eats wheat and other grains instead of rice, and starting clothing their women more often earlier. In the South, especially in the transition region between North and South, the same traits can be found amongst the upper caste.
So, the link is, possibly, not entirely linguistic, but rather remnants of a long cultural divide. And looking at my genealogy I can see memory of the family name changing within the last 10-12 generations (I am from Bengal), which cannot be much more than about 300 years back I guess.
And all this is for the Hindu population: there is another about 15% of the population (mainly Muslim, Christian, Jewish, Parsee, Jain, and Buddhist) with their own rules.