I think one key factor in the average quality of workers found in North America and elsewhere is the social aspect of career choice. In North America there's a pretty strong culture of pursuing jobs that people are interested in and enjoy. From what I've heard about India I think that there are very different social pressures that encourage people to choose careers for other reasons. Maybe this is not so, it's pure speculation on my part.
However if we assume that a similar percentage of people will be interested in computers no matter where they reside then there should be more than enough quality Indian and Chinese devs lurking somewhere. Perhaps they are more easily lost in the bigger sea of devs, but similarly they should also shine and stand out that much more as well. Could it be that those hunting for the lowest price keep stumbling on the less qualified devs and then perpetuate the myth that devs in India or China are all lousy?
(edit: I'm unsure if there actually is a higher average quality of developer in North America, it may just be a perceived difference. Raise your hand if you live in North America and have met at least one "developer" who you cannot believe is actually employed as one.)
For a lot of time now, Engineering and Medicine have been the dream careers to chase in India, the reason is simple. Before the FDI reforms started in 1992, the only way some one could make it financially big in our society was through ancestral property, a big family businesses, or plainly doing your engineering and medicine and then settling down some where in the west(immigrating).
After the FDI boom, the IT sector here exploded. People from middle class background became millionaires in no time. In fact that's how Indian IT got a fat inefficient layer of management throughout the country. Very soon there was an impression that you have to get into software to earn that high. So the mad rush to get into software started.
This is where the quality dilution occurred. A lot of clueless people got promoted to be managers. Because technology was not considered a good career growth path. Also there is a mad rush here to visit some foreign country. These are generally called 'onsite' opportunities. Trust me, you have no clue what sort of politics runs across to get those opportunities. You have a lot of good developers but they never get their due. Neither rewarded nor appreciated properly.
Good developers don't sort of get the stuff they deserve here. But projects generally run on work by 'task masters'. In a typical team you will have few little really good folks and a little average folks the remaining hardly do their job. In fact when we talk of good devs that's the kind of folks that we are talking about here. But they are available in pretty good numbers.
Coming to manufacturing, IT support. That's really more of process and procedure based. So I won't comment on that, may be that's a difficult area to compete with. Because there you have very little intelligent things to do.
A tl;dr version of what you're saying, based on my somewhat jaded view of purely US based software development (I've worked with competent Indians based in the US but none of any sort in India) is that software development in India is all too much like it is in the US, exacerbated even more strongly by recent history.
We too had a "gold rush" period in the dot.com boom and even before that most people who call themselves programmer couldn't program (e.g. write code/solve a problem on a dry erase board). Far too much of our software development management is clueless (Dilbert is Revealed Truth and it was well established long before outsourcing became big), software development/programming itself is generally not well respected, etc. etc. etc.
The current US perspective on Indians is biased by the purely cost driven outsourcing craze, which made all of the above worse by the universal service business model race to the bottom, time zone and cultural differences (the latter is something that good management could help) etc.
We don't hate Indians per se (as mentioned, I've worked with some ones in the US every bit as good as any native born developer, even helped to provide one with a horse for his downtown Washington, D.C. wedding :-), we hate the system that's developed that results in our having to deal with very long turn around times for critical stuff, that all too often delivers us code that takes as long or longer to debug or re-write than it would have taken us do correctly in the first place, the constriction of entry level job opportunities and thus the long term career pipeline, how all this has aided the terrible age discrimination in our field, etc.
And certainly many of us "hate" the H1-B etc. visa systems that were established pretty much explicitly to drive down US salaries and replace US workers with cheaper foreigners. If you're like me and have been replaced at some point by an H1-B visa holder (a brilliant Jamaican who was very good at the job and who was not happy about how the company was exploiting him (he was making 60% of what I was making)) that hate of the system is also based on hard, cold reality.
However if we assume that a similar percentage of people will be interested in computers no matter where they reside then there should be more than enough quality Indian and Chinese devs lurking somewhere. Perhaps they are more easily lost in the bigger sea of devs, but similarly they should also shine and stand out that much more as well. Could it be that those hunting for the lowest price keep stumbling on the less qualified devs and then perpetuate the myth that devs in India or China are all lousy?
(edit: I'm unsure if there actually is a higher average quality of developer in North America, it may just be a perceived difference. Raise your hand if you live in North America and have met at least one "developer" who you cannot believe is actually employed as one.)