That's not the only reason. Our educational system is horrible at teaching maths and sciences. 'Cause, you know, the NEA has decided it is more important for students to know how to use a condom than to know how to solve differential equations.
In my computer programming and administration experience and observation, the biggest difference between American and (typically) Indian programmers is discipline. Advanced math skills matters far less in the majority of programming positions than do discipline and productivity.
I think fewer programmers, particularly disciplined, productive programmers, are turned out in America because it's just not really FUN. FUN is what life's all about, right?
Bump!
My daughter is pursuing her Chemical Eng. degree and her first semester she struggled with Calculus. Her instructor's heavy accent was not the only issue, the huge size of her class prevented her from any personal instruction, the assistants were only interested in spending time with the 'pretty' girls, the study groups were only interested in their own homework issues and the math labs where no different.
I told her to start at the beginning of her text book and teach herself and never, ever trust your education to your instructor. I gave her suggestions on learning new concepts on her own and after only two months, she brought her D grade up to a B, and she finished her course with an 'A'. She called after her first perfect score on a Calc exam and exclaimed, "I taught myself Calculus!"