In the past, I have had bad experiences with Dell's Indian call center.
Some companies have Phillipine call centers. They have been uniformly excellent in my limited experience.
All of that said, while I think it's perfectly understandable and fine to let the call center personnel have an earful when they can't solve the problem and don't do a good job, to just call them up and abuse them is sick!
I've decided that the language problem is serious between US and India. They speak perfectly good english. We speak perfectly good english. Only thing is, the dialects are so different that we can't understand each other. That's why Indian call centers aren't all that great.
Also, their educational systems seem to be geared toward read and regurgitate. They don't seem to handle independent thought well. And just because someone speaks unintelligibly doesn't mean they're smart.