I've found what I think is an inconsistency in the Maildir quota implementation. According to the Maildir++ quota specification at:
http://www.inter7.com/courierimap/README.maildirquota.html
Maildir++ quota can be specified as maximum size, or maximum number of messages, or even both. The size specification is supposed to be in bytes. So I could use '10000000S' to set a quota of around 10MB.
Now, the Exim MTA has an independent Maildir++ quota implementation, and it follows the specification, so if I set the quota in Exim to 10000000, it will work perfectly with sqwebmail and courier-imap. However, it doesn't play well with Dovecot, because Dovecot chooses to interpret the quota as kilobytes, rather than bytes. An example:
If I set the quota to 10240 in Dovecot, it creates a maildirsize file with the value 10240000 in it. If I then set the quota to 10M in Exim, Exim calculates that as 10485760. It detects that the value in the maildirsize file is wrong, and recreates the file with a quota of 10485760 bytes.
Exim's behaviour is consistent with the courier family of packages, as well as the specification, so I'm venturing to say that Dovecot's implementation is slightly non-standard, and should be fixed so that the quota setting is interpreted as bytes, and not as kilobytes, to avoid a situation like the above.
-- Anand