>> When a field has validation set in the dictionary to "Must be in Table", the NetWebForm will display a message with the table name.
It's worth pointing out that "must be in table" validation is _strongly_ discouraged. It will slow down your writes (Inserts, updates, imports and so on) by a LOT. like 10x slower. Before you use this validation you want to be _very_ sure you need it. And setting it in the dictionary makes it "global" which means it's slow everywhere.
It also causes complications when you are batch adding records, and adding the children before the parent. This has impacts on invoice/lineitem patterns on forms, as well as API calls and Api Sync's.
So, in short, if you are using this validation _expect_ things to break...
>> Department: Must be in table Departments
The message might be friendlier, but honestly the solution is the same - click the lookup button and select a record. For a user the message may just as well return "invalid value".
To a developer the table label is likely more useful as it will avoid mistakes when checking the backend (when you think a value _does_ exist).
Equally, using a description is not universally useful because the description field is used in lots of ways.