The printers available to EVERY user will be
Any printer physically connected to the Terminal Serve
Any TCPIP Printer setup on the Terminal Serve
You can control who can print to these printers in the same way that you do for any other Windows Printer
The printers available to individual users when they logon will be
Local Printers connected to the client's compute
Network Printers defined in the user's profile of their client compute
Both types of client printers require an EXACT match between the driver installed on the client and that exists on the Terminal Server
Errors will be logged in the system event log each time there is a mismatch in drivers and the user's client printer can't be auto-created. In this case you'll se an Event ID 1111 for which you'll either need to make a mapping to a built-in driver (on the terminal server) via user defined inf file, or install that driver on the terminal server (not recommended)
Please read some of the white papers on my website, as they give much more in-depth detail of the process. Brian Madden's printing chapter from his (and Ken Oglesby's) Terminal Services for Windows 2003 Advanced Technical Design Guide is available on this site, and is the best description of the printing process that I've read
http://www.workthin.com/tsp.ht
Other excellent references
http://www.printingsupport.com/matrix.ht
http://hem.fyristorg.com/vera/IT/TS_printing.ht
http://www.brianmadden.co
Patrick Rous
Microsoft MVP - Terminal Serve
http://www.workthin.co