Prueba a cambiar el último cero por TRUE
 Código PHP:
    $viewemail = ( isset($HTTP_POST_VARS['viewemail']) ) ? ( ($HTTP_POST_VARS['viewemail']) ? TRUE : 0 ) : TRUE; 
    
  Eso si funciona (lo acabo de probar) pero funciona al reves de como debería... o sea con un 0 debería marcarse el NO, y con TRUE debería marcarse el SI... pero va al reves de eso 

 lo cual me acaba de dejar asombrad
Si funciona, va para las FAQ
Saludos 
 ---------- EDITADO ----------
  ---------- EDITADO ---------- 
Pues me estaba picando la duda y me puse a hacer pruebas... ahora resulta que funciona al reves (o sea, bien): con 0 se marca el NO y con TRUE se marca el SI. No sé por qué antes lo hizo al reves... 
 
  
  
  
En tu caso solo juega poniendo 0 o TRUE al final, el que funcione ahí se queda (repito, con 0 debería funcionar 

)  

 Lo que tienes que hacer es iniciar el registro desde cero (no vale con dar al botón actualizar 

 ), o sea, cambias el valor y le das de nuevo al boton registrar, aceptas las normas y miras si lo ha marcado. Si no, cambias el valor y vuelves a iniciar el proceso de registro...  
---------- EDITADO (de nuevo  ) ----------
 ) ---------- 
Olvida todo lo que antes dije... resulta que no volví a leer tu mensaje original... tu pregunta era "¿Cómo hacer que quede seleccionado en SI?" y yo te estaba respondiendo a "¿Cómo hacer que quede seleccionado en NO?" 
Simplemente cambia el 0 por un TRUE al final: 
 Código PHP:
    $viewemail = ( isset($HTTP_POST_VARS['viewemail']) ) ? ( ($HTTP_POST_VARS['viewemail']) ? TRUE : 0 ) : TRUE; 
    
  Es mi última edición, ya SI es definitiva 
 
  
Perdona por mi borrachera 
 
  
 