The sections where you are checking for the host names and then redirecting to the same hostname will almost certainly cause a recursive loop.
elseif {[string tolower [HTTP::host]] contains "join" } {
HTTP::redirect "http://[HTTP::host]/ecom/pages/nm/join.jsp"}
elseif {[string tolower [HTTP::host]] contains "MysteryBookOffer" } {
HTTP::redirect "http://[HTTP::host]/ecom/nm/link/home?YSID=1129&YTYP=net&YTID=BN4_02_k8_E66"}
elseif {[string tolower [HTTP::host]] contains "historybookclub" } {
HTTP::redirect "http://[HTTP::host]ecom/nm/link/home?YSID=1128&YTYP=net&YTID=BN3_02_h7_E65"}
elseif {[string tolower [HTTP::host]] starts_with "www" or "www1"} {
HTTP::c"http://[HTTP::host]/ecom/pages/nm/nmhomepage.jsp"}
It's bad practice to redirect to the same hostname that will cause a subsequent redirect. You will need to limit your comparisons down and/or add some exclusions to your logic so that the redirects you submitted will not trigger further redirects.
-Joe