You might want to have a look at
CPAN::YACSmoke as it does a lot wrapping around CPANPLUS. Although it only takes distributions to the test stage, you can manipulate CPANPLUS options to go the full distance, including auto-installing prerequisites rather than asking. You won't be able to use YACSmoke, but it might give you some pointers as to how to hook into CPANPLUS and some ideas of how to bundle a list of distributions to install.
One thing to bear in mind is that just calling CPAN/CPANPLUS to install a module will look for the latest module distribution. This may not be suitable if you want to install with a known working environment. Using the YACSmoke method you are able to name specific distribution versions to install.
--
Barbie | Birmingham Perl Mongers user group | http://birmingham.pm.org/