1...All Linux kernels must be compiled for them to run on your system. The ones that come with RedHat, Mandrake, SUSE, Slackware, etc. are compiled by the people at that company, with options so that they work on the majority of hardware out there.
2...Some hardware drivers must be compiled in, while others can be used as modules: for example, I compile the floppy controller driver as a module, since I rarely use the floppy drive, and don't need the driver in memory constantly. However, if you're booting off a SCSI harddisk, you need your SCSI adapter driver compiled in, since the kernel needs that to load the other modules, and if the driver itself was a module...well, I think you get the point here.
HTH.