Considering they're both script functions, not engine or language features, the only reason they wouldn't be accepted is if you simply don't have
that script file, or forgot to
use it.
As for how it's used, looking at Sluicebox's decomp here's an example from [?]Codename ICEMAN[/i]'s
beachHuts3.sc:
((Said '[/door]>')
(cond
((TurnIfSaid self event 'look/*'))
((Said 'look[<at]') (Print 12 3) ; "This is the door to hut #2.")
Note that this is
hutDoor::handleEvent, so
self is the hut door.
So it makes sure to turn toward the door if you need to turn toward it first, which stops the
cond block. If you're already looking at the door, this condition fails and
(Said 'look[<at]') gets a turn.
This script is also known as
GotoSaid.sc in the leaked Larry 3 and 5 code, though it's unused there. The proper definitions of both
IfSaid functions are:
(GoToIfSaid obj event theTargetOrX theDistanceOrY optSpec)
(TurnIfSaid obj event optSpec)