For the issue of the spider showing up in the examining description, the rule that does that is the “examine supporters rule.”
One way to find you find out which rules are printing things is to type “rules” into the game prompt before you do your actions. That lists all the rules that are running. So if you type “rules” and then “x spider” you get a wodge of text that includes the following:
[Rule “standard examining rule” applies.]
A nice red table.
[Rule “examine directions rule” applies.]
[Rule “examine containers rule” applies.]
[Rule “examine supporters rule” applies.]
On the red table is a black spider.
and that will tell you that it’s the “examine supporters rule” that is producing your text.
Well, you almost certainly don’t want to delist the examine supporters rule completely. What you could do here depends on your desired behavior. You could turn it off for the one case where the spider is on the supporter and write something to supplement it:
The examine supporters rule does nothing when the spider is on the noun.
Last carry out examining a supporter when the spider is on the noun: say "On [the noun] lurks a black spider...."
Warning: this particular solution will block the game from listing anything else that’s on the noun with the spider. If you want to let that happen, you need some more code to find the list of things on the noun that aren’t the spider and print that.
Or if you want to completely preempt the description of the supporter, that’s relatively straightforward:
Instead of examining a supporter when the spider is on the noun: say "GAAHHH! A spider!"
For the other issue, you want to put something in the text that adapts the prose depending where the spider is. I came up with this, which is kind of awkward:
The Lab is a room. "There are three tables in the room: one red, one green, one blue[if the spider is on a supporter in the Lab]. [spider-supporter text][end if]."
To say spider-supporter text:
let the platform be the holder of the spider;
say "On [the platform] is a black spider with long legs"
(The reason for the funny placement of the periods is that when you have a period just before a text substitution, Inform often likes to throw in a line break. So we work around this by making sure that the periods are after the substitution.)
I can’t help but feel like there must be a more natural way to do this, but my usual way of doing it would be with a rule for writing a paragraph about something, and that gets preempted by unlisting the describe what’s on scenery supporters rule.
BTW, if you have three tables, it might be worth making a table a kind of thing. But your actual code might be very different (I kept writing “on a table” which Inform interpreted only as applying to the red table, since it doesn’t know that the tables have anything in common.)