I got an NPC to move to and talk to another with:

Code
CharacterMoveToAndTalk(NPC1GUID,NPC2GUID,"DIALOGNAME",0,"DIALOGNAME",1,10.0);


Then after that this adds player to dialog as spectator if they can see the target NPC. Probably are better ways to do it but it works for me.

Code
IF
DialogStarted("DIALOGNAME",_ID)
AND
DB_IsPlayer(_Player)
AND
CharacterCanSee(NPC2GUID),_Player,1)
THEN
DialogAddCharacter(_ID,_Player);


Make sure to add the NPCs as speakers in the dialog editor.