The kernel header files have to be in /usr/include/linux and the kernel usually has to be configured by running make config before LILO can be compiled.
/bin/sh has to be a real Bourne shell. bash is sufficiently compatible, but some ksh clones may cause problems.
Using command-line options that are handled by init usually works with any current version of init. All currently available init packages typically support new features of LILO in the respective next release.
A file named INCOMPAT is included in the distribution. It describes incompatibilities to older versions of LILO and may also contain further compatibility notes.