Instead of trying to fix the user, software should make it as easy as possible for the user to do what they want to do.
"Oh, a real user would know-" No they wouldn't. A user may not assume the same things a developer does. If the mental effort required to use a piece of software is higher than the gain from using it, the software has failed.
This is not to say software cannot be opinionated, but instead that any changes made to default workflows should be intuitive and easy to find.