Почему бы просто не использовать пуленепробиваемый синтаксис @ font-face , как описано Полом Айришем , и подкрепить его альтернативными стилями и JavaScript в условных тегах IE?
IE:
<style type="text/css">
...
@font-face {
font-family: 'Graublau Web';
src: url('GraublauWeb.eot');
src: local('Graublau Web Regular'), local('Graublau Web'),
url('GraublauWeb.otf') format('opentype');
}
...
</style>
<!--[if lte IE 6]>
<link type="text/css" rel="stylesheet" href="ie_6styles.css" />
<script type="text/javascript" src="Cufon.js"></script>
<script type="text/javascript">
Cufon.init();
</script>
<![endif]-->
Единственной частью ваших требований, которая не удовлетворяется этой настройкой сразу же, является совместимость мобильных устройств по всем направлениям. После того, как вы определите, какие платформы вы хотите поддерживать, это решение должно быть достаточно расширяемым, чтобы обеспечить поддержку всех из них.