Efficient storage of models to be rendered?

I know about display lists, VBO’s and what not, but I am trying to get down to the most efficient way of storing say, a hundred complex models, each with their own complex shaders in addition to shared common shaders. I considered taking characters and breaking them each down into sublists for the actual characters body, clothing, armor and weapons, etc. What schema have you found works well for your own complex projects?