Я склонен всегда ошибаться на стороне организации, поэтому я бы выделил каждую ситуацию своей собственной папкой и просто структурировал бы ее так ...
application
|
|...
|
|_views
|
|_user
| |_header.php
| |_footer.php
|
|_blocked
| |_header.php
| |_footer.php
|
|_error
| |_header.php
| |_footer.php
|
|_public
|_header.php
|_footer.php
Таким образом, вы можете указать в представлении загрузки, какой заголовок вы хотите через путь
$this->load->view('user/header');
и для любого, кто смотрит на это вне контекста, совершенно очевидно, что вы делаете по сравнению с
$this->load->view('error/header');
А для логики знания, какой из них загрузить, все это должно быть определено в контроллере. Вы не должны принимать эти решения по вашему мнению.