I suggest Collide(), used as below:
obj
whoopie_cushion
icon='whoopie.dmi'
Collide(who)
view() << "[who] stepped on a whoopie cushion!"
Otherwise it's a little clunky to code things you want to be objects as turfs, so that you can use entered, or do a check each time someone moves, etc.
What if you overrode turf.Entered(moving_thing) to call Collide(moving_thing, item_in_turf) for every item in the turf?