Unity doesn't limit the number of messages each user can have - this is a function of the Exchange mailbox limits - customers can apply levels to the entire site or on a per user basis if they wish. Here's a white paper that goes into some detail about how the storage limits work in Exchange 2000 that may be helpful:
http://www.cisco.com/univercd/cc/td/doc/product/voice/c_unity/whitpapr/e2kstore.htm
You may also be interested in checking out the Message Store Monitor tool on www.CiscoUnityTools.com - it has the ability to set mailbox limits for groups of users easily and also has very detailed reporting capabilities on storage usage trends.
I don't know how to answer "what's the durection of each voice message"... not sure what you're asking here - it's as long as folks talk up to the maximum record time allowed - the max record time can be limited on a per subscriber and per call handler basis as you wish.
The storage needed for messages depends on the codec being used... the default G711 uLaw uses 8 Kb/sec - so a 1 minute message would be around 480 Kb. However you can also choose to use G729a which uses about 1 Kb/sec so a 1 minute message would be 60 Kb. Here's a white paper on the audio codecs in Unity that will shed some more light on that:
http://www.cisco.com/univercd/cc/td/doc/product/voice/c_unity/whitpapr/codecs.htm