1. try a php accelerator (such as eAccelerator)
2. don't link to large files nor link to large complex pages (such as flash or others that aren't optimized) - it's your external access that has the limits; internally I'm assuming your 10/100 or even 10/100/1000. Your internal server is going to be way faster than your external access. Download any large files or pages and host them internally.
It'd help to know the version your using, and hardware. It might be worth changing to a different version. I've been waiting for the bugs to be worked out of 1.9 and to see how responsive it is.
I've been servicing roughly 100 endusers, between 30 - 60 simultaneously on an old PIII 800MHz with 256MB ram and a 40 gig HD, running Moodle 1.6.2, LAMP (Edubuntu 6.06LTS) and eAccelerator. I recently updated the hardware to a dual core AMD 3000 X2 processor with 4 GB dual channel ram and dual 300 gig HDs running Moodle 1.8.3 and a LAMP Edubuntu 7.10 box. Both boxes have operated over an ADSL 6Mbs/400Kbs connection. Our machines internally are on DHCP, but might as well be on a fixed IP network as the leases were set to never expire ... so I place and link to large files internally, but having said that, so far there haven't been any issues with 20 students loading a 6 meg pdf at the same time ... other issues that might impact you is the types of media you system is permitted to download - if there's a dozen media streams while your attempting to use Moodle I can only imagine the limits of the 1200/256 connection might pose.