SD card Intialise error

Have you tried the ethernet part of the shield without the SD card inserted in the shield's slot? Maybe you have a SPI bus problem. Try this code. Does it display 192.168.2.2 on the serial monitor? If it displays anything else, like 0.0.0.0, then you have a SPI bus problem. Insure the shield is inserted correctly and fully into the Arduino, especially the ICSP pins.

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,2,2);

void setup() {
  Serial.begin(9600);

  // disable SD card if one in the slot
  pinMode(4,OUTPUT);
  digitalWrite(4,HIGH);

  Serial.println("Starting w5100");
  Ethernet.begin(mac,ip);
  Serial.println(Ethernet.localIP());
}

void loop() {
}