You could do this on custom post type registration.
1) Set your default permalink in the WordPress admin to your desired structure e.g.:
/blog/%postname%
2) Add the “slug” and “with_front” parameter to the rewrite-array in the register_post_type function. “slug” must be the name of your post-type.
$args = array(
// ...
'rewrite' => array(
'slug' => 'your_post_type',
'with_front' => false
),
// ...
);
register_post_type('your_post_type',$args);
This should generate the following rewrite-rules:
Default Post: http://example.com/blog/%postname% Default Page: http://example.com/%postname% Custom Post Type: http://example.com/your_post_type/%postname%
EDIT
The “slug” parameter is optional. If you don’t set it, the name of your custom post type is used. Check out the function reference about register_post_type:
http://codex.wordpress.org/Function_Reference/register_post_type