es simple, puedes usar
$this->input->is_ajax_request() para verificar desde el controller si se trata de una petición ajax y renderizar la vista en cuestión (sin las de layout).
parte del truco consiste en aprovechar si el usuario tiene js inactivo:
<a href="
url/request/normal/mvc" onclick="$('#capa').load('
url/request/normal/mvc');
return false;" >link</a>
en dado caso si el usuario tiene js inactivo el link normal se envía y la pagina carga completa, en caso contrario se carga la capa desde AJAX y el
return false; evita el GET normal