I'm not deploying to a Production environment, but I do utilize a Perl Test Harness that is distributed across a large test lab, with multiple platforms. The way we structure that is to assure that all machines are built to general specifications, including necessary compiled libraries and modules. Within the Test Harness is a Perl library that we use to keep libraries that can be utilizied across Windows and Unix platforms without worrying about compilation issues, we also include our own modules in there. This what with general requirements and our own structure we know what will be available, and have some programming standards to assure that in the case a library is unavailable there will be some graceful handling when possible.
When I did manage deployments I tried to handle things so all packages were able to be installed easily, had everything they needed to facilitate installs, and in certain situations we had rollback capability. You want the installs to be easy and have as minimal configuration as possible, both to add into Development, QA and Production environments but to minimize downtime in the case a deployment requires bringing down Customer facing applications. I could go into more, but its probably covered here, or in other forums, at length.