The movement of jobs offshore is the result of two very basic forces:
Americans (and Canadians for the most part) demand tons of customer service / work / support / whatever for the money spent - specifically very true on services like cell phones, cable tv, etc.
Americans (and Canadians for the most part) value their own work much higher than they value the work of anyone else (even their neighbors) so they are unwilling to work cheap, but expect everyone else to do it so they can get cheap services.
The solution has been to move stuff offshore. From rote coding to horrible telephone support, countries like India have filled the need for companies to keep their bottom line reasonable all while offering their customers more services, more "whatever" for a lower and lower price.
You asked for it, you got it. Don't complain