[eluser]Unknown[/eluser]
I just wanted to throw Magento in here as a good example of extensibility, I know it might seem too complex at first, but it's actually a very well thought out modular architecture.
It employs an event driven architecture, which is a take on the hook/callback architecture mention in the OP. Callback (observer) methods are paired to events (hooks) via XML config files in each module's directory, which are parsed (and cached) by the Core. This is similar to CI's implementation, but even more flexible, as it allows all modules to create events, they aren't limited to core hooks.