Take what you have that works now, and apply it to the OnSpeech method in your Falcon NPC script, to check the name, simply use something like:
Code:
//Get "Name" from "Send this to <Name>"
//(where "nameToCheck" is a string variable of the name from the list you have already.
//If it IS a match.
if( e.GetString( 3 ).IndexOf( nameToCheck ) != -1 )
{
//do something.
}
I guess it would give it the more realistic feel as opposed to a command, but there's nothing wrong with what you have already and what greywolf suggested
As for deciding which player to send it to in a multiple scenario, you can have something like;
"Send this to [<Title>] <Name> [ in ] [ in region <Region>/ in guild <Guild> ]"
"Send this to Lord Vorspire in guild Staffembers"
"Send this to Lord Vorspire in region Shame"
"Send this to Vorspire in guild Staffembers"
etc...
where [ and ] are optional?