Ad procrastinating: I remember someone (Paul Graham?) reporting that he configured a separate machine for procrastination-inducing activities so as to avoid the "just quickly check my feed while this is compiling" syndrome.
Making a separate user account just for work really helps me stay focused. Same computer, but still a different environment.
The trick is that you need to make it more difficult to access your "time wasting" sites on your work station.
I do this by adding entries into my hosts file and redirecting certain sites to 0.0.0.0, this way I need to use another machine when I want to browse these sites.
This helps maintain the separation, and keeps you from mindlessly entering in your favorite urls in a browser while at your desk.