How do I search inside specific taxonomies in WordPress

I see a few problems with your code.

  1. you are missing post_type field in your form.
  2. the name of the taxonomy dropdown should be the name of your custom taxonomy.
  3. the form method is set to GET yet you check the selected with POST.

so your form should look something like this:

<form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
    <div class="alignleft">
        <select name="publication_categories">
            <option value="0">Select...</option>
            <?php
            $theterms = get_terms('publication_categories', 'orderby=name');
            foreach ($theterms AS $term) :
                echo "<option value="".$term->slug.""".($_GET['publication_categories'] == $term->slug ? ' selected="selected"' : '').">".$term->name."</option>\n";
            endforeach;
            ?>
        </select>
    </div>
    <input type="text" value="<?php the_search_query(); ?>" name="s" id="s" class="searchinput" />
    <input type="hidden" name="post_type" value="publication" />
    <input type="submit" id="searchbutton" value="Search" class="btn" />
</form>