There are several methods to monitor the Exchange 2003/2007 communications.
The first is to create a mailbox (call it Traffic) which is being shared by the monitoring body (give permission to those users to read the shared INBOX). This will have both incoming and outgoing messages for the whole server. Through the biult-in filter you can find the sender and receipients that you want to track. you can also creat recepients policies that will assist you for the purpose. In regards to the requirement that those messages be reviewed offline, you can synchronise with a local PST file and with the addition of Client rules, distribute each communication to a generated subfolder Inbox related (or even group the message according to sender) in Outlook.
The other method depends also on the above is journaling communication of the users’ email in the TRACKING mailbox
At one of the sites that we managed, a Forinet Fortigate firewall is used and it can specifically log all communications to and from server on internet connection. If you need to monitor only internal communcation then you need specifc tracking on the your Intranet SMTP connector.
I am really not yet into the exchange 2007 which I heard that have dropped some of the functions of Exchange 2003 but hope that MS has improved the tracking tools
Hope that was some help or insight.