Create another local user account on your computer for being at work. Change the desktop background to big work logos. Don't configure your personal instant messenger accounts and whatnot. Set up the email client to only check the "work" account so you don't fall down personal email item rabbit holes. Configure the WasteNoTime Safari extension appropriately (more strictly than your personal account's config, with sites like reddit, facebook, HN, etc on unconditional block).
Added benefits:
* easy default correct ssh key use (~/.ssh/id_rsa in work account is not my personal key)
* different browser cookie jar
* different dropbox/gdrive login
* different bookmarks
* different shell history
* faster homedir backups (my personal account has ~300GB of aperture in its homedir, my work account is * privilege separation (both my personal and work accounts are unprivileged, so unless there's local priv escalation being used, rogue user-priv software in one can't steal keys/data from the other)
Then, finally, disable fast user switching. (You should do this anyway, as having it turned on enables a Firewire/Thunderbolt DMA memory-dumping attack that can steal your FileVault2 keys while your screen is locked.) This means that you have to consciously choose to "leave work" by logging out and then logging in to your personal account you use to browse reddit/HN/etc.
This is the single biggest productivity gain I found for enforcing the "I am at work now" discipline. (Being able to use a non-personal dropbox account for work stuff is almost worth the price of admission itself.)