Ho ritrovato una funzione che avevo salvato, la allego per i posteri essendo probabilmente piu performante della mia:

codice:
function ParametroQueryString(strurl,nomeParametro,valoreParametro)
	arrTemp=Split(strurl,"?")
	if UBound(arrTemp)=1 then
		set re=Server.CreateObject("VBScript.RegExp")
		re.Pattern="((^|&)" & nomeParametro & "=).*?(&|$)"
		re.Global=true
		re.IgnoreCase=true
		if re.Test(arrTemp(1)) then
			ParametroQueryString=arrTemp(0) & "?" & re.Replace(arrTemp(1),"$1" & valoreParametro & "$3")
		else
			ParametroQueryString=arrTemp(0) & "?" & arrTemp(1) & "&" & nomeParametro & "=" & valoreParametro
		end if		
	else
		ParametroQueryString=strurl & "?" & nomeParametro & "=" & valoreParametro
	end if
end function

url = "http://www.sito.it/?parametro1=valore&parametro2=valore2&parametro3=valore3"
Response.Write Server.HTMLEncode(url) & "


" 
Response.Write Server.HTMLEncode(ParametroQueryString(url,"parametro1","valore1cambiato")) & "


" 
Response.Write Server.HTMLEncode(ParametroQueryString(url,"parametro2","valore2cambiato")) & "


" 
Response.Write Server.HTMLEncode(ParametroQueryString(url,"parametro3","valore3cambiato")) & "


" 
Response.Write Server.HTMLEncode(ParametroQueryString(url,"parametroNuvo","valoreNuovo")) & "


<hr>"