Hey give SBProfiles a try. It's free. It allows for a lot of customizations and you could set up a profile for work and then a profile for everything else. It should allow you to set everything on silent except vibrate for phone calls. You can have the selecting of profiles automated by either GPS, connection to certain wifi networks, and I think you can also set times. Or you can just manually select the profile for work when you arrive and then change profiles or disable it altogether when you leave.
This was the first thing I found that might accomplish your goals. Ill keep looking if this doesn't work. But it's worth a shot. It's free!
Let me know if this works or not. Thanks!