Note: This answer is primarily for those who support an application that they also maintain and update - if this does not apply to you, you can safely disregard this answer.
I can't say precisely how to do this, since job-specific context makes all the difference, but the best way to keep the users from 'feeling dumb' is to make the application smart. What I mean by this is - design with user expectations in mind.
As you handle daily problems the users encounter, consider if there's any way to improve the tools/sites the user is consistently having problems with, not to 'warn' or to 'pre-suppose' what they want to do, but to re-design it in such a way that 'incorrect' choices are less obvious, and that correct choices happen naturally as a part of the user's experience.
Consider keeping a short list of common problems on hand when you are improving their tools/sites - you now have a short list of common problems that you can improve upon in your next build. By anticipating where things frequently go wrong, you can plan ahead and build your app so that these problems rarely, if ever, happen.