The biggest problem we have is the remote folks feel disconnected. Even with Campfire and Skype, it can still be a challenge to keep everyone connected. It's not uncommon for an in-house dev to ask a simple question to the folks around him and have that question turn into a thoughtful conversation. Sometimes, we'll think "Oh, fire up Skype and get so-and-so on the line so they can join in." But many times, we just don't even think of it.
I hadn't heard of Sococo, but it looks intriguing. Keeping an open mic with Skype was something we considered, but it seems intruding. This is an area we're still trying to get better at.
The other issue is one of team-building. Usually our in-house devs go to lunch together and grab the occasional beer after (and during!) work. There is a camaraderie there because these guys work together, eat several meals a week together and drink more than a few beers together. That just can't be replicated to a remote developer.
We've also found that some devs simply aren't disciplined enough for remote work. They love the freedom, but sometimes that freedom becomes a problem for them. We don't keep devs that have to be supervised constantly, but when they are remote it can be harder to gauge if they are just hitting a slow, unproductive period that will pass or if they are just doing as little as possible to keep a check coming in.
Distributed teams are definitely a huge bonus for a company, but there are challenges that have to be thought through up front.