You can restrict a search to a custom post type by modifying a basic WP search form like this:
<form id="cptsearch" action="<?php echo home_url(); ?>" method="get">
<input type="text" name="s" />
<input type="hidden" name="post_type" value="POSTTYPENAME" />
<input id="searchsubmit" type="submit" alt="Search" value="Search" />
</form>
To select a specialized template for the custom post type search, add this filter in your functions file:
function template_chooser($template) {
global $wp_query;
$post_type = get_query_var('post_type');
if( $wp_query->is_search && $post_type == 'POSTTYPENAME' ) {
return locate_template('page_POSTTYPENAME.php');
}
return $template;
}
add_filter('template_include', 'template_chooser');
And of course, you must create the specialized search results template: page_POSTTYPENAME.php