here's one idea that would be kinda tough, but doable.
At the beginning of your ASP page that loads the report, check to see if any parameters (request objects) have been sent in and set Session variables equal to these parameters.
Throughout the rest of your page, use these Session variables to populate your report.
<%
if request("parm1"

<> "" then
Session("parm1"

= request("parm1"

end if
Report.Parameterfields.item(1).setCurrentValue(Session("parm1"

)
%>
For your hyperlinks, point them to this same exact ASP report page (which they should already be a part of) and include something like:
loadReport.asp?newWindow=
Back to your ASP Report page:
Just before the <body> tag, check to see if there's something in this part of the querystring, and then run the javascript LV posted accordingly.
So your code looks something like this:
<head>
<script language="javascript">
function openReportWindow(strNewWindow){
window.open("
& strNewWindow, "toolbar=1, scrollbars=1, status=1, resizable=1, width=500, height=500, left=0"

;
Page_Initialize();
}
</script>
</head>
<%if request("newWindow"

<> "" then%>
<body onload="javascript: openReportWindow('<%=request("newWindow"

%>');">
<%else%>
<body onload="vbscript: Page_Initialize()">
<%end if%>
Now, the other trick is that when you're submitting the report from a different ASP page for the first time, you'll have to check those Session variables that store the parameter values and clear them out if need be before you try to load the report.
<%
if Session("parm1"

<> "" then
Session("parm1"

= ""
end if
%>
<a href="loadReport.asp?parm1=firstValue">Click here to see the report</a>
Hope this works for ya.