Il problema non è l'HTML.

Lo standard del protocollo HTTP prevede che le caselle form con parametro GET vengano codificate in quella maniera prima di essere inviate al server sotto forma di querystring nella URL.

Questo è GIUSTISSIMO, visto che lo scopo della cosa non è passare un parametro, ma andare ad un punto differente del file asp di destinazione a seconda di cosa c'è nella casella, cosa che è ESPLICITAMENTE vietata dallo standard HTML sulle form.

Se, al contrario, in realtà vuoi andare SEMPRE allo stesso punto della pagina destinazione, hai provato ad aggiungere semplicemente il #cerca alla destinazione del tag FORM?

<form name="form1" method="get" action="action_cerca.asp#cerca">

Ciao!