If the user is unable to communicate their intention to your program, your program has failed the most basic requirement for carrying out the user's intention – the user actually being able to communicate that intention. Primarily, this requirement can be translated into "The program should be simple to use."
You should make it easy as humanly possible for the user to communicate their intention to your program.
The simpler your program is to use, the more likely it is that the user will be able to determine how to communicate their intention. If you have made it too difficult for a user to communicate their intention, then you have blocked them. Any time the user fails to communicate their intention, it is most likely because it was too difficult for them to communicate it.
I know for a fact that people with an IQ of 75 can use Notepad. That is simple enough. So we should never be saying "My users are stupid." We should be saying...