Dracul, во-первых, ссылка действительно имеет id="link"?
Во-вторых, использовать объекты можно только после их определения. Т.е. код, обращающийся к какому-либо объекту должен находится в тексте после объекта, либо вызываться после гарантированной загрузки объекта.
Это работать не будет:
<script type="text/javascript">
document.write(document.getElementById('link').href);
</script><br />
<a id="link" href="http://ya.ru">aaa</a>
А это будет:
<a id="link" href="http://ya.ru">aaa</a><br />
<script type="text/javascript">
document.write(document.getElementById('link').href);
</script>
Относительной гарантнией загруженности страницы будет обработка события onload для body или окна (фрейма).
И все же, для надежности и стабильности программы стоит сперва проверить существование объекта перед первым использованием.
<a id="link" href="http://ya.ru">aaa</a><br />
<script type="text/javascript">
if (document.getElementById('link'))
document.write(document.getElementById('link').href);
else
document.write('nothing');
</script>