I have been telecommuting for a bit over a month now, and things have settled quite well.
We have set up an office, away from the entertainment area (except the foosball table, that’s in the office :)). This has been good to keep some separation between those trying to get work done and the rest of the household population.
With the time difference, office hours work well. An 8 hour stint from 1pm to 9pm (Canada) is the same as 7am to 3pm (Australia). Giving plenty of time in the morning to enjoy the snow, while still allowing ample real-time communication with the office during business hours, and even leaving some time after the work day to relax.
The work itself hasn’t changed much. A good issue tracker makes things much easier (We use MySQL’s Eventum) because everyone can easily see a current list of priorities and who is doing what, which is always important but even more so without real-time contact.
A good local development environment has also been invaluable, being able to develop and test completely without a connection to the world ensures I can still be productive even when the Internet is on the fritz. Using virtual machines I have set up individual environments for each project. Git (via git-svn) for version control allows me to work; branching, committing, merging and reverting all locally.
Communication has primarily been via instant messenger, which was already the case in the office anyway, so no real transition there. Skype is also great if you need voice communication (I generally don’t).
Using these tools, the transition has been smooth and painless. We have even successfully deployed a major project since I have been here. So far, so good.