The way I do this is to add the external address to Active Directory as a contact (I've added a new container for this purpose) and then set the forwarding from the user's Exchange account.
The following notes assume the use of the Small Business Server Administration Console:
1. Add Contact
Active Directory:
Ensure that View -> Advanced Features is checked
Active Directory -> <your domain> -> External Email Addresses (my new container)
Right-click in right-hand pane:
New->Contact:
Do NOT create an Exchange mailbox (uncheck box on page 2)
Fill in details and exit
Refresh
Right-click new Contact object -> Exchange Tasks
Next
Change alias to something non-conflicting (this will be added as a new email address in the default domain(s), but you can delete later)
Modify…
Add new SMTP address (the external "forward-to" address)
Next, Finish
Refresh
Right-click Contact -> Properties:
Email addresses: Delete any unwanted addresses (the ones automatically added to the default domain(s))
2. Upodate Exchange User
Active Directory -> <your domain>-> Users
Right-click User object -> Properties -> Exchange General -> Delivery Options
Forward To, Modify…
Select new Contact
Tick "Deliver to Both"
OK
3. Hide external contact from the standard address book (optional)
Active Directory -> <your domain>-> External Email Addresses
Right-click Contact -> Properties -> Exchange Advanced -> Hide from address list
Note that Active Directory can take a while before a change gets recognised everywhere, so you may have to wait a little while between some of the steps.
Hope the above helps,
Mike W