There are two general categories of clients, those who only want to manage the content and will outsource any technical work, and those that are willing to take on the technical management of their solution.
For the latter category, it's a matter of finding the right people within the organization and training them to become in-house eZ publish developers.
The first step is to take official eZ publish training. This will provide a base level understanding of the system and how it works as well as covering a number of useful practical tasks such as installation, configuration, and template programming.
Ideally, once basic training has been completed, the next step is to provide the in-house developer with a development environment that will enable them to practice their skills. Also, the in-house developer should be given a technical overview of the solution that they will be supporting.
I recently followed this procedure for a client. The eZ publish training went well but...