OK, this is narrower than the first post indicates. Problem only happens if WinZip is installed to c:\Program Files. If installed to any other path or on any other drive, it works OK. E.g, e:\Program Files\WinZip works, c:\ProgFiles\WinZip works, etc.
The WinZip installer/app is somehow hard coded to expect c:\Program Files (x86). Apparently if installed to c:\Program Files, it writes the wrong path to the registry. Later when the app is run, it queries the registry and believes it hasn't been installed yet.
It's true starting with Vista, c:\Program Files by convention is for 64-bit apps, and c:\Program Files (x86) is for 32-bit apps. However to my knowledge that's only a naming convention. App installers allow overriding this. I've installed many 32-bit apps in c:\Program Files, and they all work. For better or worse my naming convention is 32-bit apps go in (drive letter):\Program Files and 64-bit apps go in (drive letter):\Program Files (x64).
If \Program Files is a reserved folder name that will break 32-bit apps if installed there, it seems the installer or OS itself should enforce this.
Nonetheless given the above it seems wise to stick to the \Program Files (x86) folder name for 32-bit apps and \Program Files for 64-bit apps. It avoids the possibility some installer and app will not handle correctly a user-provided alternate folder name.