Whenever I creating shrink-wrapped software I always make packaging and distribution part of the development, qa and testing process. All packages for the platforms that we will be supporting. The reason I do this is to cut down on the customer support overhead. I've found you get less calls and emails regarding installation. And more importantly when it comes to supporting the customer they all have the same installation per platform which often times makes things much easier to debug (or at least removes alot of potential sources for problems).
In practice what this means that we have an additional make target, package which creates the appropriate package for the platform it's running on. I also have automated unit test which pull apart the installation verifying meta data and install bits, as well as running the installation in a sandbox to verify installation occurs without issue. It can be alot of upfront time to set this up, but very little maintenance is required once it's up and running. YMMV -wjt
