Patching together a Drupal project
Assuming that you inherited the custom modules along with the site, and there is no external maintainer of those, you should refactor the modules.

For contributed modules (i.e. modules maintained - or in some cases not - at drupal.org/projects), the options are more complicated.  I don't recommend creating yet another module (global_fixes) to deal with this.  You'll have problems keeping this in sync with new releases of the contributed modules you feel the urge to "fix".

Instead: 


If you're community oriented person, raise an issue in the module's project issue queue for what you consider duplicated code (or other defects). If you fix the problem yourself, make your fix a patch, and add the patch to the issue queue.
If you don't want the hassle of dealing with module maintainers and the community, make a local fork where you essentially turn a contributed module into a custom one, and do whatever you like with it.  This also means that you will no longer be able to download improved versions of this module drupal.org/projects. You'll have to maintain it yourself (just like any other custom module).


If you want to follow the community route, you'll probably notice that not all Drupal project maintainers are prepared to resolve your issues or commit your patches in a timely manner.  So if you decide to create and submit patches, I strongly recommend that you install git and maintain a local repository that let you work with the code locally (independent of the repository at Drupal.org).  Just do a merge whenever there is a new commit available at the central repository.

If you're really community minded, and discover that all the fine patches you create and submit to a project's issue queue appearently fall into a black hole, you may want to read up on this: Dealing with unsupported (abandoned) projects.