I don't think most of us care where the call center is. And I don't think we have an issue with other Non-Americans or other races helping us. We just have a couple of needs. Especially when we are paying for it:
1) We need to understand what the other person is saying and just as important, they need to understand us. This goes beyond just speaking english. Yes it's important that the accent is not so heavy that we can only make out every 3rd word. Both the customer and the support person need to understand each other well enough to get the ideas across. For example, someone might speak and understand english very well, but have no clue why an American Joke is so funny. Granted, this should not be as big of a problem discussing technical issues, but depending on how the customer and support person are trying to get their ideas across, it CAN still be a problem. Context is important! There needs to be Effective Communication, and since the support person is being paid to help the customer, they really need to be highly effective in communications, people skills as well as be a bit flexible since each customer is not going to communicate the same way.
2) Skill and Competence is Extremely Important. However, Certified __________(Fill in the blank) is not always a good measure of how competent a person is in whatever they are certififed for. Good Old Fashioned Experience is the best teacher. I've met many people that have degrees and certs coming out of their ears, but would take 3 days to understand and solve a problem that someone with some decent experience could solve in 10 mintues. I've also met people that had great experience and skill that did not have or need any type of Degree or Cert in the technology they work with that might not even be able to pass the certification testing without a lot of preparation, but they were still great at troubleshooting and solving problems in their area of expertise.
Bottom line is, a Competent tech support person should be able to effectively communicate with the majority of their customers, they should have enough knowledge and skill to be able to properly troubleshoot a problem with the customer and adapt as necessary. Making a customer go through an entire script (and I'm sure many here know what I'm talking about) to get to a point where maybe the customer already provided enough info to jump to that section of the script. Or maybe the script needs to get set to the side and REAL troubleshooting take place. Maybe the support person needs to get some help from the next level of support or engineering. I think most of us would be ok with that if we just knew the person on the other end of the phone was really striving to help us more than they are trying to impress us with what they think they know compared to us. The customer cares about one thing, and one thing only. Getting their problem solved, and get it solved properly! Standard canned answers like, "oh...I've never seen that..." or "You need to reinstall your OS" or "replace___________", etc. are NOT good examples of quality or knowledgable support unless some REAL HONEST EFFORT and troubleshooting has taken place.
If there weren't so many cases of bad tech support that's been outsourced, there wouldn't be so many people complaining about it, no would there be so many jokes, etc. It's a big enough problem that people spend the time writing about it and poking fun at it.
My 2 cents.