I\'ve seen the tutorials on creating a (raw) shortcode that leaves the code inside it untouched,
http://www.wprecipes.com/disable-wordpress-automatic-formatting-
After implementing @helgatheviking's solution on multiple websites, I'm convinced that only these lines are required:
// Move wpautop filter to AFTER shortcode is processed
remove_filter('the_content', 'wpautop');
add_filter('the_content', 'wpautop', 99);
add_filter('the_content', 'shortcode_unautop', 100);
Put them in your functions.php file and you're set.