1. To create an invisible placeable, just make a .utc file as usual and set the appearance to invisible (look at the .2da file to find the reference for an invisible placeable)
2. In Kotor 1, the game uses triggers to make the npcs initiate dialogues at certain locations.
3. To make sure the character does not repeat the same dialogue over and over, you'll have to use conditional scripts. You can check various things such as who is present, what level is the PC, does pc has a certain item in his inventory, the skills, feats, force powers, where you are in the plot (the latter is done using variables), etc.
Check this thread:
http://www.lucasforums.com/showthread.php?t=153890)