Yes, you are right! I had a contractor who decided to midfy a module in place - he doesn't do any work for me any longer. If you have to 'fix' a module, put it in your own space and let the programmes that need it does so explicitly. So did he understand what would happen when somebody used CPAN to do an update? Or a new Perl got installed?
We have two modules we have needed to modify for various reasons, on a Tk module and the other is Net::FTP. Both are kept in their own directory within the development space rather than the Perl filespace - both are tested for rigorously in the code that uses them. If somebody gets it wring here than potentially we can have nearly 3000 problems - we have nearly 3000 end users.