After doing this type of work for a while, I've found that the best way to keep my sanity while keeping users happy was to implement rigorous policy regarding how and when users ask for help. It sounds like your outfit may be too small to have a dedicated "helpdesk" or front line support, but I would suggest at least setting up a helpdesk system or Sharepoint portal that is self service to allow users to send in issues.
This allows you to maintain visiblity into your workload, so you can show why something isn't getting done after the fifth time Joe User asks the status, plus is an easy sell to your management with the argument that it allows you to effectively prioritize without users in your face all day asking why such and such isn't done or that this or that is the most important thing in the world at the moment.
The best thing about a policy like this is that you can easily deflect to people that are rude or in your face. "Did you put in a ticket?" "Sorry, I'm super busy and I can't effectively prioritize this request until you submit it." "Oh, your an asshole and want to know the status every five minutes? Check the portal." Getting enforcment on this is your biggest battle. If you can't win that, then take your experience, dedication and hard work and start shopping around. There's no reason to be burnt out because of the user population if you can help it.