I think you should consider bootloader and LAN as two isolated things.
To be able to communicate with LAN, you will probably need a network module or some interfacing. Its function is something similiar with RS232, that is, to communicate.
While bootloader's function is obtain the codes from outside world through RS232, or LAN; then place it into memory.
To my knowledge, PIC16F877 has no built in LAN function, probably need a network module.
Currently, I am working on Zilog eZ80 Acclaim! development board. Its bundled with a ethernet module, i can download my code through network. I dont really know how it works, i just need to set the IP address, and click "Connect", it is kind of convenient.