i'll tag it my post as well, here you go #h1b - anyhow, here is my 2 cents, i've been doing tech/it/consulting for about 30 years now, i've done outsourcing deals and i've worked for small, medium and large consulting companies and outsourcers, i am an immigrant as well...
in the 60s and 70s you had a number of countries rushing to build the a-bomb - to do so, they needed good engineering, science, etc. they invested heavily in this sector, to be frank, this sector was the only one where they did a decent job during this time and decades that follow - as a result, you have a decent and competitive tech sector in most of those countries today: israel, pakistan, india, ex-soviet bloc, china, etc. india, given it's colonial past had a number of school using english as the primary language so once the tech boom happened in the 90s they had an advantage here.
as tools for remote collaboration were developed, telco costs dropped businesses were looking for ways of saving money and introducing 24 hour workday (multiple time zones) and india made sense. the tech talent was 'good enough', the language 'kind of worked' and they had a scale given the population side. ibm, accenture (andersen consulting at the time) and few other big consulting companies rushed into india big time (as tech and bus process outsourcing was taking off) and a great transfer of knowledge happened. several native indian companies (tata, infy, wipro and others) were starting at the same time. this was all happening in the late 90s early 2000s and things snowballed from there.
enter, h1b program which was starting in the early 2000s - the intent was good, bring the best and brightest to the states - we've done this for centuries. so, we passed laws and established rules - with time, the aforementioned companies learned how to play the game and with time they managed to win most of visa allocations using several approaches. i'll simplify this to an extent, here but here is probably the most important thing here. if you apply for an h1b visa (and any anywhere can do it) you pay about approximately 2k. statistically you have about 10% chance of getting the visa (there is 10x more applicants than visas available), if your name is not pulled out of the hat, you lost the money. if you are an individual from a developing country, this is a lot of money and it makes no senses to take such a risk. however, if you are a large company and if you have scale, you can pay the fee for 10 folks, spend 20k and, statistically, you are guaranteed a visa for 20k.
now, imagine that the same company has ops in india and here, folks here sell work, folks from india ship talent. so, if you can sell work here and charge 100k per resource per year, pay them 60k in salary and spend 20k on the visa, you are still making money. again, i am simplifying numbers here as you need to fully load resource costs, but also the charge to the client tends to be more than 100k. in addition, the person is locked as they have to stick with you for years until they get a green card so you do not need to worry about raises, employee satisfaction, etc - it's a sweet deal.
finally, india has some amazing schools, however the number of folks who graduate from them is very limited - your typical run of the mill h1b will likely not be from a prestigious school - also, keep in mind that an indian bachelors degree is a three year degree, masters is one year - about a year or two short if compared to what we require in the states...
hope this helps...