hook を活用します。
http://hampom.wordpress.com/2010/03/05/codeigniter-%E3%81%A7%E8%B6%85%E7%B0%A1%E6%98%93%E7%9A%84%E3%81%AA%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB%E3%83%9A%E3%83%BC%E3%82%B8%E5%87%BA%E5%8A%9B%E3%82%92%E3%81%99%E3%82%8B/
こちらのサイトにて hook を活用した方法が記載されています(感謝!)
ただ、Version が古いものなのか、2.0.3 ではそのままでは動きません。
具体的には、_ci_view_path の部分が 2.0.3 では
_ci_view_paths になっていて、しかも配列になっています。
加えて、protected のメンバ変数なので直接いじることができません。
というわけなので、core の Loader を拡張してメンバ変数をいじれる
プロパティを追加します。
Application/core/MY_Loader.php を追加します。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Loader extends CI_Loader {
    function __construct(){
        parent::__construct();
    }
    /**
     * viewのパス上書き
     * @param string $path 追加するパス
     */
    function view_path_override($path){
        $this->_ci_view_paths = array(APPPATH.'views/'.$path    => TRUE);
    }
}
?>
こんな感じで作成したら、例の hook のプログラムの部分で
function view_set() {
    if ($this->ci->agent->is_mobile()) {
        $this->ci->load->view_path_override('mobile/');
    }
}
こうすると、携帯のアクセス時には views/mobile/配下の View を
参照するようになります。