Security is a way of blocking functionality. Unlike standard software products, which provide predetermined functionality, performance and reliability etc, security products limit [access to] functionality and must do so in a way that cannot be circumvented. It is difficult to ensure a system is secure, and it may be assumed to be secure until proven otherwise. This can be a problem, as the person who finds the system to be insecure is often the reason security is first sought.
Additionally, security is really not something you will get just by buying a retail product. By virtue of the concept of security you can't effectively evaluate a security product unless you know exactly what kind of security you are looking for, but unfortunately many people expect this information to be part of the product they purchase. That is possible only up to a point. To design a successful security product, several assumptions need to be made regarding users, environments and risks etc. Differing assumptions about these variables and their relationships may result in a different solution.