Programmers need their zone
I just read blog post about the benefits of working from home.
Apart from the obvious benefits it concentrates on the focus span, the importance of being able to get in, and stay in, the zone when programming.
In addition to the benefits described in the post I would like to add that when working in a distributed environment it forces you to write things down; write a mail, discuss things on IRC (of course everyone saves their logs!), describe a solution or work flow on a wiki. This way things doesn't get lost due to not getting written down.
Try "the pomodoro technique" ;)
I don't ever get into any zone when I work from my home. And I do, a lot.
However, I do schedule when to work and not. I force myself to do either more, or less. Even for my free time, I try to think, "it's my free time. What do I do?"