The problem with ZA -- from what I understand -- is that its protection is almost "too robust." I may not be describing this very well, but I read somewhere that uninstalling the software triggers some kind of defensive mechanism that prevents the user from over-writing the old ZoneAlarm DLL files. So when you try to install the new version, there is some sort of incompatibility between the "old" DLL files and the "new" ones.
Does that make any sense?