"what does the line table = /dev/hda do"
I have not booted Windows in years so my recollection is hazy. But as I remember it, I think table= is used when booting DOS, Windows, etc. from a device other than /dev/hda. I think table= says to pass the partition table of the named device to DOS in a way that makes DOS think that the named device is C:
Since you are booting WindowsXP from the device that it recognizes as C: anyway, I think that you are correct in saying that table= is superfluous.
You could remove the line from /etc/lilo.conf, run lilo, and try to boot into WindowsXP. If it doesn't work then put table= back in lilo.conf and run lilo again.
Be prepared. Create a LifeBoat CD.