Good luck. In or work on OmniCrashCatcher, we've found that there's no good reliable way to cause the user's mail client to open a compose window with a message body of any significant length. The InternetConfig/LaunchServices API for farming our mailto: URLs (which is the implementation for other APIs such as NSWorkspace and the JDK) has about a 1K limit on URL length. (Actually, according to the RFC for standard URLs, they aren't supposed to be able to get bigger.)
We used to use the private Mail.framework to send crash reports via Apple Mail, but that's gone in 10.1. Our next best approach has been to use AppleScript. By directly invoking an app's GetURL handler, we can circumvent the 1K limit of InternetConfig/LaunchServices. However, AppleScript has a length limit of 32K for string constants. So, we break up the report into several small chunks, concatenate them together using the & operator in AppleScript, and pass the whole thing as an argument to «event GURLGURL».
This works just fine for Apple Mail, but it seems other mail clients have problems with it. Eudora works fine, as does Netscape Communicator 4.x (in Classic), but just about every other mail client fails to get the complete body text, or any at all. Entourage works fine if the text is short, but if the text is beyond a certain length, it will crash. (And due to the nature of AppleEvents in OS X, it will relaunch and crash again several times.)