I frequently make use of Request.QueryString[] variables.
In my Page_load I often do things like:
int id = -1;
Well for one thing use int.TryParse instead...
int id;
if (!int.TryParse(Request.QueryString["id"], out id))
{
id = -1;
}
That assumes that "not present" should have the same result as "not an integer" of course.
EDIT: In other cases, when you're going to use request parameters as strings anyway, I think it's definitely a good idea to validate that they're present.