Try to keep your current routine as much as possible, and as above if you're lucky enough to have space for an office use it as just that.
- Have a shower and get dressed before you start work - sitting in your undercrackers all day, whilst liberating, isn't that conducive to a good days work in my experience. Too many scratching opportunities, plus you get some funny looks when the postman turns up with your latest bike related purchase.
- Don't fall into the trap of communicating only over email, pick up the phone as much as you can. Assuming you have sufficient bandwidth at home if your company has VoIP for home workers get onto that, otherwise sign up to Skype or similar and get your colleagues to do the same. If you haven't got sufficient bandwidth use the regular phone (and expense it) because talking to someone over a bad VoIP connection is extremely frustrating.
- Get a decent desk phone with a wired headset. Mobile phones and bluetooth headsets are a PITA if you ask me.
- Take regular breaks as you would at work
- Leave the TV off, even if it's in another room. Jeremy Kyle and/or Homes under the Hammer is enough to drive anyone to distraction.
- Take a proper lunch break, go for a ride, run, walk, just get out of the house and get some air and a change of scenery.
- Don't start work too early or finish too late. It's easy to get carried away.
- When you finish for the day shut everything down to avoid the temptation of checking email or writing that one last piece of code.
Not sure I could do it permanently but I used to love working from home 2-3 days a week, unfortunately due to a small house and young kids combo I'm not able to anymore.