As a business, if any client has any sort of problem using your software then it’s your problem. Non technical users will have trouble using your software because of an array of issues, such as permissions, settings, configurations, other software, and external devices. No matter what, you have to make the effort to get them started using with your software or not. I’ve seen issues at different client sites because one software application required one version of Java and another required a newer version. Typically you can have multiple version of Java on a computer, but these two applications demanded that only over version exist and that it be the one they require. I’ve seen issues where end users print from an application and complain because they don’t see the document printed in their laser jet, it was printing in another printer in another floor and they didn’t know how to configure it correctly.
As a development lead, if any programmer has any sort of problem with your architecture then it’s your problem. If someone doesn’t understand an design and they have to work with it, they will make changes that can cost you in the long run. If you make a system overly complex, there will be a time that you will have to delegate that to someone else and they will not understand it as deeply as you and will make changes to fix the bug of the day, but cause another problem to be discovered later.
Whether an end user doesn’t know how to change the printer or a new developer doesn’t know how to implement your design, it’s your problem and it should be addressed with something other than blaming the confused.
Sometimes it’s because you took on the wrong client, or hired someone without the technical background, but it is still your problem. Often times, the problem is basic communication and availability of training material. Always, examine these situations and see how you can improve the process, training, and communication of your team.