I am asking this question to myself for sometime, unfortunately I could not find time to investigate it because of other important(!) stuff I had to do.
I even asked the same question to a consultant while interviewing him for a project. The answer was;
There is not a particular way of doing it, but I am sure it is possible up to some context, since Alfresco is Spring based, blah blah blah.
So I stopped asking and accepted the fact that it is not possible.
Suddenly, while I was re-reading the new version of Alfresco’s developer book, I read that is possible, on top of all it is possible for a long time, even in Alfresco 3.1.
And it is crazy easy, what you have to do is to upload your custom model to Company Home/Data Dictionary/Models
and enable it.
Lesson learned: RTFM🙂