I asked basically the same question a few months ago. Here is the link to the thread:
Administrator privileges My conclusion was to give the code to staff that does scheduling. It is just too much of a hassle to go in and fix those little errors myself. Plus, it slows everyone down. This was also less of an issue for me because my billing is outsourced, so there is less chance for financial mischief by a disgruntled employee. Nonetheless, there is a downside as described in the thread.
Hopefully V6 with practice management will allow for the creation of various levels of security.