Qué curioso el asunto este
Tu código es correcto pero IE parece que pierde agua por ahí.
No sé si esto es aplicable a IE posterior a la versión 6 (tal vez para la 7 esto esté corregido)
Parece ser que los campos creados dinámicamente en IE no pueden establecer un atributo name. Este atributo es necesario para que se active/desactive un campo de tipo radio.
En la web de microsoft propone al respecto el crear el campo usando createElement de la siguiente forma
Código:
var elemento=document.createElement('<input type="radio" name="pepe">')
Funciona bien en IE y selecciona correctamente los campos al hacer click. Pero en otros navegadores (al menos en FF) deja de funcionar.
Podrías comprobar el navegador y crear el elemento de una u otra forma dependiendo de si es IE o no.
Otra cosa que podrías hacer (tal vez lo más simple) sería asignarle el comportamiento con javascript al crear el elemento
Código:
elemento.onclick=function(){document.getElementById('valorRadio').value=this.value;
this.checked =true
};
Un saludo