Drivers should be in the kernel if A. at least one of their primary clients exists in the kernel, e.g. disk controller drivers, B. they service a large number of clients directly (e.g. /dev/random), C. real-time performance is critical to the correct operation of the device (e.g. audio/video).