SfdcfoxSfdcfox' answer looks fine to me, however I have some remarks to point 1. and it is quite an improvement so I decided to not leave it as a comment but as a seperateseparate answer, because some people may find it more useful.
The problem with overriding default layout is that it's very hard to maintain -everytime every time you want to add the new field to the object you have to modify the VF code. There's however an alternative:
- Create custom VF page displaying only a button
- Make the rendered attribute user-dependent so it only shows to certain users
- On the standard layout of the object, create a new section at the top with a blank header and put your VF page there
The advantage is you still have the rest of the layout in standard SF, and if the button is not visible, you just have a bit of margin between standard buttons and the rest of the layout.