Creo que es suficiente con definir la propiedad "border" para los elementos td.
Aunque tambien con CSS2 se puede emplear la propiedad: "empty-cells: show"
Y sino, como ultimo recurso puedes incluir un espacio ( ) en las celdas vacías.
Ejemplo:
Código:
<html>
<head>
<style type="text/css">
table, td { empty-cells: show; border-collapse: collapse; border: 1px solid red; }
tr { height: 25px; }
</style>
</head>
<body>
<table>
<tr><td>1</td></tr>
<tr><td> </td></tr>
<tr><td>3</td></tr>
<tr><td></td></tr>
<tr><td>5</td></tr>
</table>
</body>
</html>