I have set a server based policy to archive mailboxes.
It runs every week on all mailbox (with a compact -A command started through a program document).
Policy is set to prevent user to change anything nor to use its own parameters.
Archive database is easily accessed from the mailbox itself.
Main advantages:
1- user does not need to do anything
2- archive is fully controlled by admin (acl monitoring, accessibility, backup, ...)
One bad thing is there are little differences between the look and the behaviour of the user's mailbox and the archive. So it may be possible to send (and store) an email from the archive.
Another thing : it might be not so convenient for mobile users...