The most commonly thought of type of driver would be a driver enabling the use of a hardware device. There are other drivers, though, such as filesystem drivers. Other software, like networking protocols, may be very similar to drivers, as they enable the use of seomthing (which would be a method of communication).
Drivers often come built into an operating system, and such bundled drivers are often written in generalized ways so that they make things work with multiple devices and any interaction, such as configuration, look similar to other drivers. They may be included in operating system upgrades and/or official patches. Drivers are also often able to be found on a manufacturer's website, even for devices that are no longer manufactured or widely sold in the retail market anymore. Such drivers are more likely to support optimizations for specific hardware, as well as custom interfaces with more options and more exposure to the manufacture's brand name, and is more likely to show advertisements: Printer drivers may include links to places to purchase special paper or more ink. Third parties have also been known to release drivers.
A deifnition for a driver that is simply defined, 100% clear, and applies widely to driver software but not to other software, is not an easy definition to come up with. Examples leading to this difficulty follow: A file system driver (like DBLSPACE.BIN) that is loaded and then which provides the desired data when requested, just like other file system drivers do, would be considered a driver whereas Info-Zip is not considered a driver, despite being loaded and using memory until it is completed with providing the desired data. If Microsoft Defrag is called automatically and completes its task in the background, it is generally not called a driver. A printer driver can be interacted with to tell it to resume printing after the paper jam was taken care of, and to alter color settings. Some drivers, such as SHSUCDX (and I believe Daemon Tools might be), and some RAM drive software, can release all their memory when they are no longer needed. DOSKEY is a considered to be a driver, and its primary purpose of providing a command line history is user-interactive. Drivers that are stored and executed on devices are generally called firmware, and drivers meant primarily for use by one piece of software are often called plug-ins.
Drivers may also be bundled in with some software. For example, after obtaining a network driver for Win9x from this page, one can obtain the functionality of an SSH tunnel (which translates the generalized concept of any sort of data with a specific encryption method, in a method that can be completely transparent to common networking software) by obtaining the PuTTY software package from the Network Software page.
The operating system for which users may benefit the most by visiting these pages may be DOS, due to older operating systems like MS-DOS coming with relatively few drivers compared to more modern operating systems, and that some modern drivers use up much less memory than the drivers commonly used back in those days. (Especially mouse drivers and CD-ROM drivers have excellent modern solutions.)
Knowing what hardware is in the system can be somewhat difficult at times, despite this being requently needed to get decent driver support. The hardware can often be detected by software, such as a bootable operating system that detects software, or DOS or Windows software created specifically to help detect hardware characteristics such as the manufacturer of the board and/or embedded chips of importance.
Often basic file system drivers are included in an operating system, well enough that many people don't need to spend time installing file system drivers. There are exceptions, though: Most notably, perhaps, are the drivers enabling use of specific hardware (such as USB storage devices, especially in Win9X, and CD-ROMs in some older operating systems, namely DOS systems, and CD writing software in some other operating systems). When drivers do need to get used, however, the benefit of having the driver working is usually well worth the time of installing the driver. Once installed, though, many times these drivers are not interacted with directly. Therefore they may not be thought of as often, but they are listed prominently on this page since they can, in theory, be used to read other drivers so that the other drivers can be installed.
In addition to the drivers in this section (such as the *.ISO mounters), some disk compression software support having archive files being treated similar to a disk and so having at least some of its functionality being similar to a driver. Such software can be found from the Archiver Software section separately from the drivers section.
For older CD-ROMs to have data routed through the connector on an older sound card, USB devices to work well in Windows 98, CD-ROMs to work in DOS and CD-R burners to work in Win9x, Zip drives to work over parallel ports, and for some SCSI hard drives to be recognized at all, drivers may be needed.
Software providing virtual drives may be found on this page as well.
DOS Mouse drivers (CuteMouse highly recommended for DOS mouse users, as it is likely to use up much less memory). It also contains a link for Optimouse, which lets a system use multiple mice at the same time.
I may sometime put onto this site some drivers for Microsoft Windows 3.x that support 3 buttons. Beyond that, standard mouse functionality is generally built into operating systems that people use, meaning that there is little need to download specialized drivers for them.
Providing some sort of low-level access to memory is generally provided by operating systems, and so these drivers may offer additional capabilities over built-in drivers, such as using additional memory areas (like EMS) and perhaps additional memory chips, or providing generalized data compression.
Software with a specific focus on memory, such as memory testing utilities, may also be found here (even if they aren't meant to be used as a mutli-purpose driver).