In my experience Quota’s are either per database or per user, they can be made to apply by Active Directory Group via script which essentially applies the quota to each user that is member of the group parsed by the script (I’ll paste an example script at the bottom).
If you implement Quota’s on the mailbox databases they will apply to all users immediately. If you enable the ‘prohibit send’ option then that would take effect immediately on existing and new users (generally one has to get all the users below the ‘prohibit send’ quota before applying it).
I’ve been through this a lot over the years, there are usually three philosophies:
1) No quota’s at all (most common)
2) Quota’s with a list/group of special people that have no quota
3) Some form of archiving and a quota (archiving that’s built into Exchange or an archiving appliance like a Barracuda Archiver)
It’s pretty difficult to implement quotas because it requires getting every single employee to buy in, and take the effort to delete all their old email, which often takes training. Deleting msg’s one-by-one is a total waste of time because emails are so small, so documentation needs to be produced showing people how to sort Sent, Inbox and Deleted Items by Size and then removing the largest messages and for those that will do it, steps to empty the deleted items and completely delete sent or delete sent older than 90 days. The majority of companies are running some variation on option #1 (no quota) or 3 because they can kind of implement #3 behind the scenes and assure the users nothing is actually deleted its just in a different place (often on cheaper storage or stored inside the archiving appliance’s internal storage).
Example of a storage quota by AD group script (Exchange 2013, 2010, 2007):
Import-Module activedirectory $groupmembers=Get-ADGroupMember "Exchane Quota 3GB Group" foreach($user in $groupmembers) { Get-mailbox -identity $user.name |set-mailbox -IssueWarningQuota 2864000000 -ProhibitSendQuota 3072000000 -ProhibitSendReceiveQuota 3072000000 -UseDatabaseQuotaDefaults:$false }