A user may want to print out a web page if it contains a lot of text or important information that the user wants to save.
A page with a light text on a dark background color may look nice on a screen, but not when it is printed out on paper. Furthermore, the page may contain a lot of menu bars and gimmicks that just take up space on the paper to no use. Some web designers want to help their users getting a nice printout without disturbing colors and menus. There are various ways to solve this problem:
Making a link to a printer-friendly version of the same page. This method is easy to understand for the user. Unfortunately, the link to a printer-friendly version rarely fits into the existing menu system: The menu contains topics, not technical options. Putting in a link that doesn't fit into this context disturbs the user. If you place the link elsewhere it will either be too glaring and disturbing, or it will be ignored.
Making a Print button on the page. This is equally disturbing. The user is likely to prefer the usual printing method, not knowing that this button gives a better result.
Using style sheets to specify different styles for different media. This method works automatically whenever the user prints a page. (You can make unwanted things disappear by applying the style display:none). A minor disadvantage is that the user doesn't expect the page to look differently when printed out.
Every page that a user may have a reason to print out should use one of these options if it contains elements that would be disturbing on a printout.