The information here is a bit shy on how request validation works. First of all, it's on by default. The exact check that is made during a post is described here:
http://mikepope.com/blog/DisplayBlog.aspx?permalink=441
This checks for many things that look like they might be HTML in the post, including in the form, the cookies, server variables, and in the query string. Note that this check is not particularly hardened; it's just a first line of defense against relatively obvious ways to attempt script injection.
A downside of this check is that there are times when you might want to allow some HTML, such as if your application accepts user comments with simple formatting. The default check is an all-or-nothing proposition, so it will reject everything. To allow some HTML, you must disable this check. You can do this by setting validateRequest false for the page or (not recommended) for the site (in the Web.config file). If you do this, you must then add your own check -- for details, see the How-to topic referenced in See Also above.