Part of customizing Magento is, of course, creating custom Modules. These allow you to inject functionality anywhere. There are many things custom Modules can do, from editing your Database, to handling module upgrades to
overriding classes (Blocks, Controllers, Models)