Artur Ejsmont has a recent post to his blog with some recommendations on how to structure a Zend Framework application and its dependencies to make it both easy to maintain and extend in the future.
I don't mean to be negative but I am not too happy about the web application structure that most articles and books present. In Zend Framework world controller seems to be the place when things get done. Controller is the workhorse and this is where all the logic seems to be buried.
He talks about the non-reusability of controllers outside of a web-based environment and the bad habits that can come from depending on variables of that environment. He's come up with a diagram of how he thinks a good, modular Zend Framework application should be structured where the emphasis is on Services, not web requests. He looks at database aware/agnostic services, working with models, third-party code and working with external systems. He also touches on the "V" and "C" in MVC, noting how the views and controllers still fit into the mix.