well.. since this is my first week with linux im a newbie too but i can try answer your questions
1. What is initrd.img and why does Debian need/use it?
The initrd is the "initial ramdisk". It is enough files stored in a ramdisk to store needed drivers . You need the drivers so that the kernel can mount / and kick off init. The initrd is typically used for temporarily booting the hardware into a state, that the real kernel vmlinuz can than take over and continue the booting. For example - you can't read the kernel off the scsi hard disk until you have a scsi driver loaded in the kernel. (Solution: boot an initrd kernel that can read the real kernel and use initrd to fix scsi booting problems)
2. vmlinuz must be the kernel image?(sorry! I mentioned I didn't bother about recompiling before!)
The "vm" stands for "Virtual Memory". Linux supports virtual memory unlike old operating systems like DOS which have a hard limit of 640KB memory. Linux can use the hard disk space as "virtual memory" and hence the name "vm". The vmlinuz is the Linux kernel executable.
3. the kernel image is what is loaded at boot-up?
see 1
4. why should I edit /etc/fstab and add /sys sysfs defaults 00 and mkdir /sys
no idea. i followed the debian adminstrations guide and never made this change and my kernel seems ok
5. really why should i turn off acpi? i thought it uses APIC for IRQ routing this way and it has more IRQ this way, don't wanna use PIC right?
no idea...
6. what is win4lin? should i use it? is it big if i have to compile it in the kernel?
http://www.win4lin.com/
7. To compile a kernel I need the kernel source and headers? what are these headers? anything else i need?
Kernel-headers includes the C header files for the Linux kernel. The
header files define structures and constants that are needed for
building most standard programs and are also needed for rebuilding the
kernel.
(I didnt download source and headers.. i downloaded from
www.kernel.org and made my own kernel-headers file..)
that will give you the latest stable kernel, then just follow the guide i posted before
8. how do i add modules that i don't have?
apt-get install or download from site and read README :P