Leave Yourself a Place to Start (or: Leave work with something small broken)
is something I do all the time. I work Java at my day job, and have found that leaving out the semi-colon at the last place I touched (so that eclipse shows a compile error) really helps me get back to what I was doing the previous evening (or the friday before) so much quicker.
And the last point, get to know your tools. I am currently trying to learn emacs, but I have pretty much mastered eclipse (and other tools that I use). Not having to use the mouse to get to different views and perspectives to browsing around for files, absolutely necessary for improving your productivity at work.
In addition to the last point, getting to know additional tools outside of the development environment really helps. I read websites like lifehacker and have learned of tools like Launchy (on windows). Yes, it takes a while to get used to these tools, but once you have figured them out and configured them to your liking, you can really fly. Though i do get made fun of at work, considering the number of shortcut key combinations that I keep in my head. Invariably, someone will stop by to ask me for a key combo, and I have to type it out because a lot of the times its muscle memory.
I thought this was a great point too, but I did not take it as literally. I find that if I walk out the door with something in my mind that needs to be fixed, a real problem that I'm not sure how to tackle, that I'll daydream about it while doing other things. By the time I get back behind the keyboard I usually am anxious to try out at least one strategy so I dive right in and get working.
I do the same. The remaining problem is actually focusing on the task - I try to tackle that by doing (with a timer) "sprints" of 10 minutes of work (without allowing self to be distracted at all for that 10 mins). Once 10 mins is over, I take 2 mins to goof off, then repeat. After a few cycles I am in the flow usually.
Being a webdeveloper I found everytime I open my browser with igoogle I would get sidetracked by some story.
For what it's worth, iGoogle has a link in the upper right that lets you toggle between the "Classic Home" and "iGoogle". You could use Classic Home mode to do any necessary Google searches quickly without having distracting news articles on the page (and without having to move the keyboard focus to a toolbar search box).
my tip for not being side tracked is...
make your home page on your development machine blank.
Being a webdeveloper I found everytime I open my browser with igoogle I would get sidetracked by some story.
I have also taken to getting up earlier and reading all I can first thing and then just getting on with it.