Used for system constants such as <Constant>U_MAXINT</Constant> and <Filename>Makefile</Filename> variables like <Constant>SRC_FILES</Constant> (because they are usually constant for a given run of <Command>make</Command>, and hence have a constant feel to them).
Used for everything that should appear in typewriter font that has no other obvious tag: types, monads, small snippets of program text that are formatted inline, and the like.
For displayed screen dumps, such as portions of shell interaction. It's easy to tell the difference between these and shell scripts: the latter lack a shell prompt.
Tables are quite complicated to write in SGML (as in HTML, there are lots of fiddly tags), so here's an example you can cannibalise. In the spirit of the LaTeX short introduction I don't repeat all the markup verbatim; you have to look at the source for that.
There's not much else to it. Entries can span both extra rows and extra columns; just be careful when using block markup (such as <SGMLTagclass="starttag">Para</SGMLTag>s) within an <SGMLTagclass="starttag">Entry</SGMLTag> that there is no space between the open and close <SGMLTagclass="starttag">Entry</SGMLTag> tags and the adjacent text, as otherwise you will suffer from <ULinkURL="http://www.docbook.org/tdg/html/entry.html">Pernicious Mixed Content</ULink> (the parser will think you're using inline markup).</Para></Entry>