The reason you are seeing it appear for other characters is that you should probably use quest::setglobal([varname],[value],[options],[duration]); instead of targlobal if you want it to be private to that character.  Just set the options field to 0 and it will be private to that character.  Or use the other options for different combinations:
	Code:
	+--------+---------+---------+----------+ 
|  value |  npcid  |  player |   zone   | 
+--------+---------+---------+----------+ 
|   0      |  this     |   this    |   this     | 
|   1      |  all       |   this    |   this     | 
|   2      |  this     |   all      |   this     | 
|   3      |  all       |   all      |   this     | 
|   4      |  this     |   this    |   all       | 
|   5      |  all       |   this    |   all       | 
|   6      |  this     |   all      |   all       | 
|   7      |  all       |   all      |   all       | 
+--------+---------+---------+----------+