Mega with wiznet shield (wire hack)+thingspeak+sd problem

I don't know about the code you are using. It seems it is running out of memory or crashing because of some variable array overflow.

I have proven code that works well for me. Here is my client code in the playground.
http://arduino.cc/playground/Code/WebClient

Modify that code with this to start the SD.

// In setup, change these to pin 8
// disable SD SPI
pinMode(8,OUTPUT);
digitalWrite(8,HIGH);

// And after this 
Serial.println(Ethernet.localIP());

// put this to start the SD
Serial.print("Starting SD...");
if(!SD.begin(8)) Serial.println("failed");
else Serial.print("ok");

You should be able to modify that code to suit your purpose.