You're asking the right question. :) The PDW was never a stable enough solution to risk using it in a production environment. It never fully solved the "DLL Hell" problems that come up with it.
One of the main problems was that after the PDW was released, OS service packs started disallowing replacement of numerous DLL files that were used by the OS. This was the only way that they could solve the ubiquitous version problems that were plaguing server installations everywhere. They never did anything with the PDW to address this change. So, if your installation package includes a DLL file that the OS doesn't allow you to replace, the OS won't register it. Then, when you reboot as part of the installation process, the PDW errors out and tries to reboot again, and you get caught in an endless loop of reboots. Very very bad. If you should be interested, I wrote this up in detail here back in '03.
There are plenty of solutions for what you're trying to do, and some of the other answers give some of them. Microsoft's own solution is the Visual Studio Installer, which you can read up on here. This is the one that builds those .msi files that you see all the time; msi = Microsoft Installer.