I think the problem is that you are assuming that the eval() command will ignore HTML and just execute the PHP commands inside of it. That's not true. Really, the eval() command will run PHP commands. Therefore, if you want some HTML to come out of an eval statement, then you need to put print statements around the HTML just as you would if this were a PHP script.
The following works just fine for me:
<?
$str = 'print "<input class=\"fax_text\" type=\"text\" ';
$str .= 'name=\"textfield\" title=\"date\" tabindex=\"6\" ';
$str .= 'value=\""; echo date("M d, Y"); print "\">";';
// This is just a test to see what $str really looks like
print "$str\n\n\n";
// This is how $str evals
eval($str);
?>
Therefore, the string should appear like this in your database:
print "<input class=\"fax_text\" type=\"text\" name=\"textfield\" title=\"date\" tabindex=\"6\" value=\""; echo date("M d, Y"); print "\">";
By the way, I think eval is extremely useful and would never say that it should be avoided. Like any tool, it's right for certain jobs. Use it when you absolutely have to have PHP in your database. (Which isn't all that often).