hallo Sven,
Jede vernünftige Template-Engine (und deshalb vermutlich auch Smarty) ist in der Lage, eine Variable entgegenzunehmen und deren Inhalt vor der Ausgabe durch diverse definierte Funktionen durchzuleiten - also beispielsweise auch nl2br()
Laut http://smarty.php.net/manual/de/language.modifier.nl2br.php wäre Smarty durchaus dazu in der Lage. Wegen HTML4 als Layoutvorgabe müßte trotzdem nochmal ein replace darumgelegt werden. Letzten Endes ist es wurscht, wo das passiert.
Grüße aus Berlin
Christoph S.