Для IE мне помог только такой способ: в html-документ вписываете
<!--[if IE]>
<script event="FSCommand(command,args)" for="Taxoman"> eval(args);</script>
<![endif]-->
("Taxoman" - имя Вашего плеера) и тогда динамически вставляемая флешка тоже работает в IE.
Еще можете попробовать внедрять флеш с помощью гугловского универсального внедряльщика, хотя лично я сталкивался с рядом трудностей при его использовании.
Также хочу отметить, что при динамическом создании (внедрении) флеш в разных браузерах проходит некоторое время до его готовности (от 100 ms до 1,5 сек.) и бесполезно сразу после внедрения запускать его Play, нужно дождаться сигнала готовности (Ready) от плеера (надо предусмотреть такой сигнал в callback).
И последнее. Для устранения проблем передачи переменной через FlashVars, в частности для передачи URL просматриваемого видео, должен быть в интерфейсе предусмотрен отдельный метод типа Taxoman.SetURL(), который можно будет запускать после получения Ready.
И самое последнее.
"К тому же, если переменная не пришла, то надо флэшку вовсе не показывать"
Очевидно, что Вы в этом случае будете держать флешку в состоянии "display:none". Не знаю, почему придумана такая глупость, но в этом состоянии методы флешки перестают работать.