Since you've already got lots of great answers on the directory structure side of things, I thought I'd offer my opinions on the issue of CVS. As to (CVS) modules, what we use here is one (CVS) module per project, plus one (CVS) module for the common (Perl) modules.
Personally, I think using MakeMaker for this type of thing is overkill. You don't have to worry about possible installation of your modules on hundreds of obscure flavors of Unix-oid OSes ... just on one machine, and you know that one pretty well. I would go with mandog's suggestion of each project having its own install script. The way we do it here at my company is to have a single script called "rel" to release things, but of course it has to have a buttload of configuration files to tell it where things go and whatnot. Personally, I'm starting to think we should have done it the way mandog suggests too.
HTH.