I had a problem with my 3c509 cards moving from 2.2.16 to 2.4.1. The cards would be found on bootup, but they would not work. The problem was my command line parameters for the card did not specify the "type" of connection. It was defaulting to BNC and it should have been 10baseT. I added the correct mode to the "append" and my cards work now.
The source driver for the 3c509 cards was the same in 2.2.16 and 2.4.1, yet I still saw different behaviors between the two kernels.
You may want to compare the dmesg output between the two kernels.
As for you "Ran out of Input Data" problem. I have had the problem in the past, and it was usually a bad image or a lilo install problem. Try reinstalling the old kernel and recompile 2.4.2 and reinstall it.