The content of $smarty->template_dir
is relative to the actual directory. (if it is a relative directory.)
It means if you call a admin/index.php then it searches the templates in the admin/templates directory by default. (without adding anything.)
So in the admin directory you should use:
$smarty->template_dir = "../templates";
or an absolute directory.
Otherwise I think you should read this page:
http://www.smarty.net/docs/en/variable.template.dir.tpl
Especially this sections:
It is not recommended to put this directory under the web server document root.