As you may realize, we are in different work status in the single work day: sometimes you are coding, sometimes you are investigating, sometimes you are communicating, sometimes you are reading, sometimes you are idle.
And I think you must feel the compute is too slow to let us do the work smoothly. I think one of the reason is that we are running too many unnecessary processes for the work. You leave the communicator there while you are coding/investigation; always have MyDropBox there while you are coding/investigation.
I define the following rule for me to speed up the compute, to reduce my work time. And another idea is to avoid unnecessary intercept by IM.
Coding
Investigation
Shutdown any communication tools
shutdown mydropbox client
shutdown other process which is not needed
Communication
Start communication tools
Start outlook
Reading
Start outlook
Idle
start mydropbox client
do disk cleaning up
...
The listed items followed the status are just as sample, it will be defined during the working. And I will have a script for each status to manage the process sets (automatically start/shutdown).