URLs defined in a hook broken
The function that you should use is url(). If you want to output an absolute URL you should use the following code:

function ep3_misc_node_view_alter(&amp;$build) {
  if ($build['#bundle'] == 'work') {
    for ($i = 0; isset($build['field_tags'][$i]); $i++) {
      $tid = $build['field_tags'][$i]['#options']['entity']-&gt;tid;     
      $build['field_tags'][$i]['#href'] = url('our-work', array('absolute' =&gt; TRUE, 'query' =&gt; array('tid'=&gt; $tid)));
    }
  }
}


If you don't want an absolute URL, replace the call to url() with the following one:

url('our-work', array('query' =&gt; array('tid'=&gt; $tid)))


check_plain() is never used to output a URL; in fact, url() doesn't use it.