<br> is an HTML tag, so it is completely different from \n and \r. So get the idea that they are the same out of your head.
\n - new line, in *nix's this functions the same way you would expect hitting return on a new typewriter to function. It moves the cursor down 1 line and all the way back to the left margin. On DOS machines (all windows) this only moves the cursor down 1 line it doesn't return it to the left margin.
\r - carrige return, in *nix's this doesn't do anything that I've been able to figure out (in text files) it is however used in some programs as a delimiter. The HTTP specification uses \n\r to signify the end of a line in a set of headers. On DOS machines (all windows) it works to move the cursor to the left margin.
Basically DOS based machines behave like an old typwriter (one with an arm to move the "carrige") if you hit the return key all you get is the paper moved down 1 line, you have to use the arm to move back to the left to start typing again. So on DOS machines you need both \n and \r to get the same results that using just \n will get you on *nix machines.