Generally, I avoid any mark-up in the database, as it tends to make the data less usable for any purposes other than output to a HTML web page. Now, if you're sure that's the only purpose that data will serve, then no big deal (e.g. you can't imagine ever wanting to search against that table column and have to figure out how to ignore text inside of any tags). Also, if you ever want to change the mark-up for some reason (SEO tweaking?) you don't have to edit every row in that table.
As far as data normalization goes, you might want to figure out a scheme were each element would be in a separate row, perhaps with a foreign key to another table that defines where those rows are used. Then you could loop through the result set, e.g.:
Is the client a software designer or developer? Foreign keys and additional tables provide a great flexibility when the needs of a data application change (such as SEO as mentioned above). You can use line breaks in a single column, but you will then have to make large modifications to the data that is stored or how it is stored if you ever need to make adjustments to single items that might span multiple lists (such as if a copyright issue were to arise for a particular description given to multiple products).
ASCII newlines probably are no problem, and can easily be replaced with <br> tags or </p></p> tags -- whatever makes sense for your output -- via things like preg_replace() or nl2br(). It's also good to filter the output with htmlspecialchars() or htmlentities() (before you add any markup to it).
"Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
~ Terry Pratchett in Nation