PHP公式マニュアルによると、
nl2br 改行文字の前に HTML の改行タグを挿入する
とあります。http://jp2.php.net/manual/ja/function.nl2br.php
このnl2br関数ですが、デフォルトでは、xhtml準拠の<br />タグを挿入してきます。
しかし、htmlに準拠しているページでは、<br>タグを使いたいはずです。
その場合には、nl2br($value , false) と第二引数にfalseを指定してやると<br>を挿入することができます。
ただし、PHP5.3以上のバージョン限定です。
CORESERVERで試したところ、残念ながらエラーになりました。PHPのバージョンを調べると5.2.5でした。
どうするべきか調べると、正規表現で改行<br>を挿入するというのが現実的だそうです。
http://q.hatena.ne.jp/1253302152
$text = preg_replace( '/\n|\r|(\r\n)/', "<br>", $text );
これでOKです。
ところが、CORESERVERでは、一つの改行のはずが、<br><br>と2個の改行が入ってしまう場合があります。
この場合は、パターンマッチ部分の\nを\n\nと2つにしてあげると一つの<br>が挿入されます。
まあ、そこまで<br>と<br />にこだわらないなら、はじめのnl2br関数のままでよいかもしれません。
蛇足ですが、nl2br関数は、newline to br の略みたいですね。
newline 2 br →nl2br ということのようです。