I've made more progress and have a method to achive the desireable behavior but I'd like to know why it works.
If I import an iCal file for user@foo into user@bar then I need to replace foo with bar in the Organizer field (RFC 2445, 4.8.4.3) in the iCal file first. If I don't do this then each appointment will appear as an invitation not owned by the user. An easy way to see if you have this issue is to see if Zimbra displays the appointment with a darker color.
I can use the above method for all of my users but I was concerned that if I then changed bar back to foo to send the server into production that I'd have this same problem. I did a test (
http://wiki.zimbra.com/index.php?title=ZmSetServerName) and it seems that a hostname change didn't change appointment status. Downloading the iCal file from the changed hostname still shows the old hostname. This is the desireable behavior but I would like to know why.
Why would the organizer field's value of a different host cause a tentative appointment for an import but a standard appointment for a hostname change?