#1 only works if the user does not use the tag albums module (which I personally do). By redirecting to $tag->url(), we can accommodate both cases.

#2 has the same problem as doing nothing; the code for an item is:
   public function abs_url($query=null) {
     $url = url::abs_site($this->relative_url());
     if ($query) {
       $url .= "?$query";
     }
     return $url;
   }

The call to abs_site() assumes that $this->relative_url() is relative to the G3 root (which, of course, it is), but neither tag nor tag_album has a function to give me a kohana-based URL; both output a URL starting from /path/to/g3!

I did not find a kohana function to get $_SERVER['SERVER_NAME'] or $_SERVER['HTTPS']; I assume you don't want me building a full URL (which url::redirect _would_ accept)  from PHP variables.

There's a third option; add a new function to both tag and tag_albums to give us a Kohana-able URL; normally, I would think that this new one would be called url and the full path for use in an href directly would be called abs_url or something, but many others already use $tag->url(), so maybe this new one should get the new name (any thoughts on what?). 

It would require modifying tag_albums as well, but it seems like the most proper thing to do. I've sent rWatcher an email to ask if he can take a look at this thread and offer his thoughts.