My single biggest distraction is myself - I tend to go all hare-brained, chasing emails and internet links much of the time. Therefore, I'm using a simple trick to discipline myself into staying focused and on-task for larger parts of the day. The principle is to stay accountable for the use of my time:
1) Have a scheduled job in your operating system, that pops up a small messagebox every 15 minutes (in Windows, it should run the command C:\windows\system32\cmd.exe /C "start /B msg jpretori /W /V "15-minute check""
)
2) Have IDailyDiary running in your system tray (a text file will work fine, too). Every time the box pops up, fill in what you've been up to the last 15 minutes.
I've caught myself with an ugly day filled with procrastination before... It's quite a good motivation to stay on-task.