the major reason for the difficulty in removing Avast and other system security / anti Malware suites is that there are a large number of less than legal programmers and Script Kiddies that spend their time trying to break into the software to perform their criminal hacking - the systems are therefore designed to be difficult to remove

Some like Avast are accused of making their software almost impossible to remove for marketing reasons, most users will simply leave the software running on their system when they cannot remove it. Avast and other software developers in the security field now provide a specialist removal tool which should be first thing used if you wish to remove it.

One other option that can help to remove any complex security software (and other software) is to use specialist uninstall software to monitor the actual installation of the package so that they are aware of all the traps and protections Revo and uninstall tool are two that have this option.

The weakest link here is us the users - I often install software for testing purposes and have a system to monitor the install, but I often forget this step in the rush to get testing the software

The other potential issue with software removal is the fact that Microsoft have programmed Windows to be conservative when the uninstaller is used, If the uninstaller is not sure if anything else uses DLLs and other support files they simply leave them on the system, this is the major reason why Windows often improves performance after a fresh install