Arduino Ethernet shield: it just won't work!
The Arduino uses SPI to communicate between the devices. Since the design of the Arduino Mega changed and the older pinout relates to older shields, in order to use it with newer shields you have to hack it a little, to work around the problem. 

A lot of people had this question before, and you can still find the answer here: http://mcukits.com/2009/04/06/arduino-ethernet-shield-mega-hack/