Hello Nabil_boussetta and jorisb
1) It's safer to install the kernel source before because if you compile your driver inside the kernel, you'll obviously need kernel sources. And if you compile it as a module, you'll need a kernel with loadable module support enable and various things like a proper /lib/modules/<kernel-release>/ directory.
Another reason is that driver code is processed in kernel space... so its sources need some specific kernel include to be compiled.
2) Kernel contains various things like boot process, memory management, scheduler... and a lot of drivers. Some classical like PCI, filesystems... are compiled in kernel for obvious reasons. And other like driver for usb devices or NIC can be found in kernel sources and are more likely compiled as modules.
Why compile a new kernel??? for example your mandrake provides you a kernel with a lot of useless stuff for you... So you may want to recompile it to decrease its size and improve its perf... You can also compile a new kernel, for update reasons: a security patch or the new release provides features you may need.
Here is a good website where you can find various howtos about linux and his applications