Note, it wont always go to the first option if there is only one.
There is a way to stop it.
When using player gossip, it wont directly open the first, possibly with others.
Creature gossip also has this option if you add some flags or something to the NPC.
If I remember correctly, my teleport NPC should have the correct flags or w/e and should be able to show one option.
There is also a thread about this on TC
It should be a client feature, not TC. Otherwise you could achieve it with packets while you cant. (likely)
The thing Jamey suggests is just a normal gossip option.
You can just use the normal gossip functions and macros to send the option etc.
This means that the normal OnGossipSelect(Code) functions work.
Note that they wont obviously work by default for player guid as sender for example.
The packet handler will receive the packet, but since the guid doesnt belong to a creature, it is rejected. You should code player gossip if you are going to use that.
Check this out:
https://docs.google.com/file/d/0Bx5knS2IsjatS1dkRjhtbTF4S2c/edit
Note that you should check the code for extra security and create more checks if you find need for them.
Also note that I accidently put the hooks to Player even for the item gossip xD Works anyways, but they should really be in itemscript.
Read the description! (details on right side before downloading)