Creo el tema está en el scope de las variables.
Estás declarando una clase errors y utilizas la variable $smarty dentro de ella... pero la clase sólo "conoce" las variables que se crean dentro de ella, o que se le pasen como parámetro o las que sean globales.
Lo que puedes hacer es definirle un constructor al que le pases como parámetro el objeto $smarty
Código PHP:
class errors {
var $_smarty;
function errors(&$smrt){
$this->_smarty = &$smrt;
}
function setError($id) {
$this->_smarty->assign('error_titulo','titulo lindo');
}
}
Algo así puede ser.
Saludos