Have you looked into a virtual desktop solution yet? I use virtual desktops for very similar reasons (tuck all the real time wasters away in one desktop, put music playing controls and such in another, and use every other one for a different task), and I find it does a very good job of keeping me focused on the task at hand without getting in my way when it's time to do something else. Each one of my desktops is just two keypresses away, but there's no indication that anything is even running in any other desktop but a tiny square in the bottom right corner of my screen.
There's a free version on their website (scroll down a bit) if you'd like to try it. It lacks the toggle hotkeys, but it'll let you know if it suits you before buying.
Physical separation has been great. It makes it much easier for me to remember which context I'm in, and it makes context switches obvious.
So I've identified a few ways I use my computer and I'm setting up a user account for each one:
This way I can tune each desktop to the appropriate kind of work. I can eliminate clutter in the dock. I can leave the appropriate windows open without it distracting me when it's time to do something else.If it goes well, I'll try to write it up in a blog post.