Android does not have "device drivers". If you were to think of the entire Android ecosystem within your handset, split into 3/4, using the Java Programming language, the remaining 1/4 is the kernel written in C/Assembler. It is there within the kernel is where the drivers are embedded. That is part of the kernel's job to interact with touchscreen, accelerometers, compass, etc, and certain interactions with the hardware gets delegated to the Android side of things. That is a summary in abstract form for the layman to understand.
On to hardware manufacturers such as Acer, Huawei, HTC, Samsung, Sony, Zte, to name but a few, what each of those companies do, is publish the sources to the kernel, so that it can be built. Although, having said that, some are not exactly GPL compliant, some provide sources, which may not be fully complete, quite possibly, due to the restrictions on certain closed-source for a particular hardware, or others just flagrantly violate the GPL and not publish it at all. Perhaps, some do distribute the source in which the process of rolling your own kernel can fail due to malformed errors in the code or missing extra code.
That applies to, generally older kernels, version 2.6.x, in which a mix-and-match of the appropriate sources gets merged in manually, to create a build, this is where it can backfire quite horribly, the build breaks, kernel refuses to boot and lots of hacking to get the build to work.
Atheros, is one very classic example of a wifi chipset found in quite a large majority of handsets, notably, the sources for the device driver, are quite hard to find, which has resulted in broken builds of the driver, in turn, when integrated with the kernel, as a whole, Android refuses to start the wifi. Due to obscurity of the source, hackers have attempted to get the appropriate wifi driver from other stock ROMs thereby exacerbating the gambling on the functionality of the wifi which either work or break.
The newer kernel versions 3.1.x, have most of the device drivers employed for usage with Android, merged into the main kernel sources thereby minimizing the chances of mix-n-matching, merging the source manually for a hardware, be it a new compass, acclerometer etc.
If there's anything amiss feel free to comment, and amend this accordingly.