You can just use overflow and/or text-overflow with a very long set of periods to cover any eventuality such as:
Code:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style>
.recipe {width:80%; margin:10%}
.recipe h3 {font-weight:bold; font-size:1.2em; font-name:serif}
.recipe p {text-align:justify; text-indent:0}
.ingredients {width:80%; margin:2em auto;}
.ingredients td {max-width: 500px;
overflow: hidden;
text-overflow: clip;
white-space: nowrap}
</style>
</head>
<body>
<div class="recipe">
<h3>I. Dark and stormy night.</h3>
<table class="ingredients">
<col width="50%" />
<col width="50%" />
<tr><td>Dark........................................................................................................................</td><td>1 tsp.</td></tr>
<tr><td>Storm........................................................................................................................</td><td>16 oz.</td></tr>
<tr><td>Rain........................................................................................................................</td><td>5 qts.</td></tr>
<tr><td>Torrents........................................................................................................................</td><td>3</td></tr>
</table>
<p>It was a dark and stormy night; the rain fell in torrents except at occasional intervals, when it was checked by a violent gust of wind which swept up the streets…</p>
</div>
</body>
</html>