I recently just started my first gig as a professional programmer as part of small development team. At my work developers have two machines, a "web machine" for internet access and a "dev machine" for programming tasks. Our dev machines are completely sand-boxed to the point of not even having a CD drive access.
At first this was not an issue for me as I was just pleased to be getting a dual monitor set-up. In practice however, I have found that changing contexts between the two machines to be a significant handicap. Something as simple as copying an error message from the compiler into Google has become a hassle and more importantly a massive flow breaker.
I am using a keyboard switcher so I don't have to move my hands when making the switch but to be honest the biggest problem is not this but the lack of basic features such cut and paste between the two contexts. I know there are tools which allow one of the machines to remote the other over a network and that these tools can even persist the clip-board across the contexts however this is not an option for the following reason.
I am told the machines are arranged this way for source-code security. In other words they don't want the security risk associated with having the source even theoretically accessible from the internet and they also do not want developers being able to send the code off into the wild and perhaps selling it on to competitors etc. I can sort of understand the rational behind this but it all seems a bit arbitrary to me as a developer could probably get the code off their machine if he or she was inclined to do so. I must admit that it never really occurred to me that a company would try to protect source from its own developers.
I am still very much wet behind the ears so I would be very interested to hear the experiences and opinions of other stack overflow users on the issue.