If a page contains 'errors' (non-valid markup) then the browser can display the 'error' in a way that they want to - i.e. an error in the code makes the way a browser shows your page undefinable and may change from one minor version to the next.
E.g) <td><a href='...'><b>This is </b> a link</td>
Here, I have opened the <a> tag to create a link. But where should the browser close the link?
1) It could close it after the </b>, assuming that the boldness indicates where a link should be.
2) It could close it just before the </td>, assuming that the table cell is the end of the link.
3) It could continue the link until an </a> is found, assuming that the writer wanted the link to cover various table cells.
None of the above would be wrong for a browser. The code is wrong and the browser can now make it's own decision with what to do with the code.
There are other 'errors' which some programs will display which technically are not errors or are being very picky:
a) <span class='bold'></span>
b) <a href='x.cgi?a=1&b=2'>
In a, the span is empty and therefore pointless and redundant, but is not really an error.
In b, any browser should see the link as above, but the W3C would say that the '&' should be written out as an entity: '&'. This is probably not needed & would be ok in almost every circumstance.
Usually these are called 'Errors' and 'Warnings'. If your page has 'Errors' - your programmer should be adjusting the code. If it has warnings, then the HTML is probably OK, just not quite perfect, but acceptable.