-System.map contains the listing of locations where different kernel internals are pysically located in the kernelfile/memory. The listing is unique to the compiled kernel and used probably by modprobe, some debugging tools, kernel dump/panic analyzer, etc.
-Idea of the removing the old one is to not to mix up it with the new.
-Idea of the links is that you don't have to modify your lilo.conf (or grub configs) every time you upgrade your kernel; /boot/vmlinuz contains allways the newest one.
-initrd is an initial ramdisk passed to the kernel by boot loader (lilo/grub) containing kernel modules needed access the root system (hard-disk, nfs, raid-arrays, scsi-devices, cdrom[eg. in knoppix], where ever your system is configured to run itself in).
-You need to create it again if your system structure is changed or if your kernel modules are changed (eg. new kernel version). (This of course applies only if you use initrd).