What doesn't work very well is having a few remote people and a large mass of people in an office all working together on the same project. There is significant high bandwidth communication that happens when people are together physically. This leaves remote workers out to pasture. Things get missed. Tension builds.
The same effect occurs when you have multiple offices working on the same projects. I've been in the middle of this first hand as well. You can quickly end up with teams doing a lot of internal communication without talking to the teams in other offices. Rivalries will build. It will probably become an "Us vs Them" situation as animosity over small things snowballs.
This can be combated largely by explicit written communication. Use chat rooms. Use good issue tracking. Use internal social networking.