search.php is not generating the right results

Try adding the following code to the top of your search.php template below the get_header() call:

<?php    
  global $query_string;

  $query_args = explode("&", $query_string);
  $search_query = array();

  foreach($query_args as $key => $string) {
    $query_split = explode("=", $string);
    $search_query[$query_split[0]] = urldecode($query_split[1]);
  } // foreach

  $search = new WP_Query($search_query);
?>