First of all in any larger group, communication overheads tend to scale faster than useful work does. This is old news, The Mythical Man-Month and all that. Process is meant to limit the amount of random communication you need, at the cost of annoying overhead, all of the time. Add a few incompetents to the mix, and you get continuous frustration.
Furthermore the frustration gets worse when people have to make decisions based on mistrust of others. I've been there, having to deal with a developer who could not be trusted to not mess up production. Having to walk the balance between limiting him enough to not do major damage while still letting him get enough done to be useful was very frustrating for both sides. And I'm very sure that he blamed me in spades for the irritations in his life.
On the flip side, there must be a balance. Developers really need a development environment under their control. Firewall it off. Scan it for obvious problems. Create backups as requested. But don't be a bottleneck. For a random instance, if they are using a persistent server technology (eg mod_perl), then they need to be able to restart it at will. Otherwise the administrator becomes a key step in the edit/compile/run cycle. Which is something that needs to be as fast as possible.
Remember, the job of an administrator is not to have a cleanly administered environment with everything locked down solid. You are not the reason that the computers are there, and your internal priorities do not drive the business. Rather your job is to make sure that other people can do their work. Yes, they will whine over everything that you need to do. But listen carefully. Sure, most of the whining that you hear is meaningless bitching and moaning. But some of it is feedback that you need to hear about where you are drawing the lines incorrectly.
Good administrators learn to tell the difference, and react appropriately. Unfortunately most administrators are incompetent. (And this differs from any other category of worker..?) :-(
Cheers,
Ben