I think a lot of geeks have a vision of a perfect world when a detailed, unambiguous spec arrives in their email, they write the code and upload it, then the money is transferred to their accounts. There is a fundamental flaw with this concept, which is writing a spec that good is more work that just writing the code yourself. And the guy who writes that spec will need to collaborate with others enough that having everyone in the one place to do that makes sense. Videoconferencing works if you want to discuss something with which you are both familiar with someone you already know, and this admittedly is a large part of many people's jobs. But for everything else, you really do need to be there.