¡áchis!,
¿<a href='hola.asp?id=<%=id%>>liga</a> te lo traduce como <a href='hola.asp?id=<%=id%>>liga</a>?, o sea, no te lo traduce.
La única forma de que no se interprete el ASP es por que no sea una página con extensión .asp, o que tengas un web server que no lo reconozca.
Esto: <a href='hola.asp?id=<%=id%>>liga</a> es lo mismo que <a href='hola.asp?id=<%response.write id%>>liga</a> y como una instrucción ASP debería de traducirse e interpetarse ANTES de generar el HTML.
a ver, please, revisa eso, y me cuentas