Well the way i do it, is to create properties in master page.
public System.Web.UI.AttributeCollection SomedivAccess
{
get {return somediv.attributes} //some div is the masterpage div..which sets all header etc stuff..for...eg.
}
in actual content page before printing
you can clear this attributes like so
MyMaster myMast = (MyMaster)(page.Master);
myMast.SomedivAccess.clear()
its only an example to show you how it can be done.
The otherway sites do it..is..like for e.g. google etc is they have a link to a page which is without styles etc ..try printing in gmail for e.g. or bbc
Please Mark Post that helped you as answer, also include a summary of what solved the problem as it helps others in similar situations