This shouldn't happen unless both tables have CellSpacing or CellPadding set to a value != 0. Are you doing anything with these two properties?
An example on how you could achieve same alignment when wanting to use CellSpacing/CellPadding:
Say you have table 1, consisting of 2 rows, with CellSpacing set to 0 and CellPadding set to 2. Now in the cell of Row 1 add table 2 with CellSpacing 0 and CellPadding 0. In the cell for Row 2 add table 3 with CellSpacing 0 and CellPadding 0.
The result would be that all your data should have the same alignment.
Make sure that all tables are nested the same way so the conditional visibility is on the same level. So enclose another table on the highest level and create a new line for the conditional visibility part. Make sure that the table structure inside the cells on the highest level are using the same column sizes. Hope this makes sense.