I've been working as a freelancer for almost a year now, and I cannot help noticing how free software helps making this possible. Working in an international setting, most of the work is done from my home office. This requires techniques to get the work done. Small motivational "rewards" (or really fun customer assignments so that one forgets lunch...) The other half is the communication with the customers itself. This is where free software enters the picture.
My setup consists of a set of communication tools and a set of (virtual) servers. Let's start with the latter.
My externally accessible server hosts Trac for each customer and project. Currently these projects are versioned using subversion as it is easy to get setup with Trac. However, I'm planning on investigating integrating git and Trac - time permitting.
Oh, I almost forgot - the server runs Linux (Ubuntu) and Apache. This is so natural that it goes without thinking.
The other side of working off site is communication. As you do not share coffee breaks or meet in other social settings it is extremely important to be available through a set of communications channels.
The natural, first choice, of any business is email. I have not actually sent a single paper invoice in years. All goes via email as PDFs.
For shorter interactions, questions and such, I prefer Jabber or IRC. For those using gmail, Jabber is only a click away. Using a client such as Kopete, all these channels can be gathered in one place.
Finally, there is the big gap - voice communication. I have to confess that I rely on an ordinary phone and Skype. The problem is not so much setting up a proper SIP client (e.g. KPhone or QuteComm) but to convince your clients to do so too.
Finally, working from home, it is always good to have access to a meeting room. Something that the nice (and FLOSS-y) people at Gnutiken help me with!