"MailComposer demonstrates how to target older OS versions while building with newly released APIs. This sample also shows how to use the MessageUI framework to create and send email messages from within your application. "
The key is making the 3.0 frameworks "weak" frameworks and including exceptions in the actual implementation to handle the OS type. As the above reply says, check out the MFMailComposer it is a create reference for how this can be achieved. It can be done like this for other 3.0 features as well.