There are different models for outsourcing. Big companies dominate this arena and often open up their own overseas offices or partner with others who have a reputable office overseas. Other companies hire individual freelancers domestically or overseas. It is also common for American or British companies to hire BPO companies in India, The Philippines, Romania or Africa to do a variety of tasks. Many BPO companies specialize in one type of task such as call center work while others can do anything from telemarketing to payment processing, bookkeeping, ecommerce set up and PHP programming.
The way outsourcing typically works is that a company in an industrialized country will need help getting some repetetive work done. They will often source companies overseas who can do the work for a fraction of the price domestically. Sometimes a quote will be given for a particular job while other times a long term service contract will be set up. Call centers often want you to commit to use a single rep for a period of one year while others will lease you an employee on a day by day basis. Programming houses typically charge per hour, but they can also bid for finished projects. The problem is that the specifications need to be very clear if someone is bidding on a completed project, and what if there are bugs in the program or if something doesn’t function correctly?
As with any other business arrangement, it is much easier if you know the people you are working with. If you have gotten reliable results from them for a year and you know the staff members personally, you are much safer with them than with a stranger regardless of what the contract says. A contract is only a piece of cyber-paper and doesn’t specify how good the “quality” will be. And if your contract is violated, how can you possibly enforce it if the company you are using is in Mumbai?