Transaction costs are the costs to the client of initiating and following up on projects. When outsourcing to remote lands, transaction costs are often higher than they would be if you were asking an employee sitting next to you to do something. This is because cultural differences can lead to a need to explain tasks in much greater detail than would be necessary when dealing with a Western company. However, this is not a hard and fast rule, as the ability to understand requirements varies from individual to individual. Those who can interpret and complete more loosely defined tasks are at a premium even among programmers in lower-cost countries. Otherwise, the savings that come from cheaper labour can quickly evaporate by a heightened requirement for rigorous and fully-thought-out specifications - which may have to be detailed to the point that the application might as well have been written locally by more expensive developers who could at least understand and act upon looser specifications.
On the other hand, for some projects, improving the specifications and investing more in up-front design and early client feedback is the best way to go anyway.