I would suggest taking a look at the Template Hierarchy structure to fully understand WHY archive.php overwrites certain pages (although it shouldn’t overwrite search results)
If you wanted to go a custom template direction (might be the best way) I would do something like this
create a monthly-arcive.php file and paste the following (you can name it whatever)
/**
* Template Name: Monthly Archive
*/
//get the header
get_header();
//normal WordPress loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
the_content();
endwhile;
endif; ?>
//show the archive list
<?php wp_get_archives('type=monthly'); ?>
//get footer
<?php get_footer(); ?>
Then create a new page and select “Monthly Archive as its template and you should be all set.
Things to note: You will need to style the custom template to match your other pages you may even want to start out by making a copy of another page. You should also look at wp_get_archive() in the Codex for more examples.
Hopefully that helps.