Joel on Software has some good comments about the "offshore design" problem, as he calls it. In my experience, the biggest problem with offshore design (hiring cheaper labor to do your work remotely rather than pay higher rates to hire someone local) or any remote project development is the time zone difference. No matter how detailed your spec is, no matter how "signed-off" everyone is on the prototype, inevitably changes and questions arise.
When you have easy access to people to communicate changes, whether through IM, phone, or around the water cooler, it's a lot easier to keep on time and budget. But even an 8-hour time zone difference means one team is mostly working while the other is not, and that's where the trouble lies. Open, continuous channels of communication are essential on development projects. I don't think you need to have everyone in the same office to achieve this. But having teams with large time zone differences can wreak havoc on a project schedule.