No Indian programmer ever thinks with the mindframe "I want to take your job".Whenever someone is onsite for whatever reason,they are just doing their job,as anybody would do.
I studied and then worked in America for 4 years before starting to work as an onsite worker for an Indian company.As far as failure of projects is concerened,this primarily happens due to lack of communication between the management and the engineers.Some companies really cut the corners and go for cheap Indian companies(apart from the well known ones),what I observed is that management in these companies is poor and a choice of a lesser known brand can expose you to them(though the quality of software engineers in more or less the same).The Indian coder is always caught between what the client asks for and what his own boss wants him to do.Thats why the sucess rate at product companies like Oracle India,Adobe India is higher and the employees just love working there, as compared to project based companies.
I have also seen some great project successes in offshore and have seen the project size grow from 1 to 100.It all depends in how you go about implementing it.I dont see this trend decreasing in the short term.But I must admit that I am skeptical that this is assuming dangerous propotions, now anyone who can say "IT" in India has a job and calls himself a software engineer.Not that they are all poor workers, but they lack the kind of creativity thats needed.There was a time when you needed a computer science degree and real experiance to get a job , but not anymore.This reminds me of the dot-com boom days in the silicon valley.
What I do want to point out is that outsourcing done correctly at a measured pace can be a success,but that doesnt seem to be the scenario. You can tell with the companies in India hiring in thousands....
Change, before you have to...