yes, the dialog would be dependent on that variable. to make it so, open the dialog editor in the CS, go to the greetings tab, select category 0 (the game scans the dialog, top to bottom, looking for the first entry that it meets the criteria of. by placing it high in greeting 0, you can be assured that it will override most other greetings. just dont put it before the oath of silence greeting, that breaks things)
for the conditional, select "global" after you have created the variable. the second dropdown box will give you a selection of all the globals, you'll need to pick yours out.
to get the script that checks the player for the silence effect to work properly, you should make it a tribunal startscript. you CAN do this without tribunal, but this involves modifying the "main script" or some other thing that does not insure foolproof compatibility. the tribunal startscript way is overall easier and more compatible.
oh, and i'm pretty sure you'll want to turn
if ( GetEffect sEffectSilence == 1 )
into
if ( player->GetEffect sEffectSilence == 1 )
if you use this code, you'll want the dialog conditional to be "1". dont make other greetings for 2 or 0, the variable is only 1 when you are silenced. if the variable is some other value, it will be ignored.