soooo...my assumption is probably right, that the Ethernet Shield in combination with DUE does not provide SPI (Miso, Mosi, clk) on Pin 11,12,13
-> i soldered the three SPI wires of the RTC directly to the SPI soldering points of the Ethernet Shield and: IT WORKS!! 
Further it works also together with Ethernet, BUT if the SD.h gets included the SD and RTC may be working, but the SD may affect the Ethernet functionality
-> set SPI mode0 everytime before using Ethernet: SPI.setDataMode(SPI_MODE0);
....its not working with SPI.setDataMode(10, SPI_MODE0) .. which was surprising to me (because of the extended SPI functionality of DUE)
so, finally, here is my code for testing:
#include <SD.h>
#include <Ethernet.h>
#include <SPI.h>
#define rtc_pin 52 //chip select
#define sd_pin 4
Sd2Card card;
SdVolume volume;
SdFile root;
byte mac[] = {0x00,0x01,0xDA,0x0D,0x02,0x03};
byte ip[] = {x,x,x,x};
byte gw[] = {x,x,x,x};
byte DNS[] = {208,67,222,222}; //Open DNS Server
byte DNS2[] = {8,8,4,4}; //Google DNS Server
byte subnet[] = {255,255,255,0};
 Â
void setup() {
 Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
Â
  int incomingByte = Serial.read();
 Â
  if ((incomingByte) == 'a') {
   RTC_init();
   Serial.print("RTC inizialized..."); }
 Â
  else if ((incomingByte) == 's') {
   SetTimeDate(11,12,13,14,15,16); //day(1-31), month(1-12), year(0-99), hour(0-23), minute(0-59), second(0-59)
   Serial.println("time set"); }
 Â
  else if ((incomingByte) == 'd') {
    Serial.println(ReadTimeDate());}
 Â
  else if ((incomingByte) == 'g') {
   Ethernet.begin(mac, ip, DNS, gw, subnet);
   Serial.print("W5100 initialized"); }
 Â
  else if ((incomingByte) == 'h') Upload();
  else if ((incomingByte) =='j') SDTest();
 }
}
 //===================================================================================
void Upload () {
 SPI.setDataMode(SPI_MODE0);
Â
 EthernetClient client1;
Â
 Serial.print("My IP address: ");
 Serial.println(Ethernet.localIP());
 Serial.print("connecting...");
 client1.connect("www.arduino.cc", 80);
 if (client1.connected()) {
  Serial.print("connected");
  // send the HTTP PUT request:
  client1.println("GET /latest.txt HTTP/1.1");
  client1.println("Host: www.arduino.cc");
  client1.println("User-Agent: arduino-ethernet");
  client1.println("Connection: close");
  client1.println();
Â
 }else {
  // if you couldn't make a connection:
  Serial.println("connection failed");
  Serial.println("disconnecting...");
  client1.stop();
 }
}
 //=====================================
int RTC_init(){
 pinMode(rtc_pin,OUTPUT); // chip select
 // start the SPI library:
 SPI.begin();
 SPI.setBitOrder(MSBFIRST);
 SPI.setDataMode(SPI_MODE1); // both mode 1 & 3 should work
 //set control register
 digitalWrite(rtc_pin, LOW);Â
 SPI.transfer(rtc_pin,0x8E);
 SPI.transfer(rtc_pin,0x60); //60= disable Osciallator and Battery SQ wave @1hz, temp compensation, Alarms disabled
 digitalWrite(rtc_pin, HIGH);
 delay(10);
}
//=====================================
int SetTimeDate(int d, int mo, int y, int h, int mi, int s){
  int TimeDate [7]={s,mi,h,0,d,mo,y};
for(int i=0; i<=6;i++){
if(i==3)
i++;
int b= TimeDate[i]/10;
int a= TimeDate[i]-b*10;
if(i==2){
if (b==2)
b=B00000010;
else if (b==1)
b=B00000001;
}
TimeDate[i]= a+(b<<4);
Â
digitalWrite(rtc_pin, LOW);
SPI.transfer(rtc_pin,i+0x80);
SPI.transfer(rtc_pin,TimeDate[i]);Â Â Â Â
digitalWrite(rtc_pin, HIGH);
 }
}
//=====================================
String ReadTimeDate(){
String temp;
int TimeDate [7]; //second,minute,hour,null,day,month,year
for(int i=0; i<=6;i++){
if(i==3)
i++;
digitalWrite(rtc_pin, LOW);
SPI.transfer(rtc_pin,i+0x00);
unsigned int n = SPI.transfer(rtc_pin,0x00);Â Â Â Â
digitalWrite(rtc_pin, HIGH);
int a=n & B00001111;Â Â
if(i==2){
int b=(n & B00110000)>>4; //24 hour mode
if(b==B00000010)
b=20;Â Â Â Â
else if(b==B00000001)
b=10;
TimeDate[i]=a+b;
}
else if(i==4){
int b=(n & B00110000)>>4;
TimeDate[i]=a+b*10;
}
else if(i==5){
int b=(n & B00010000)>>4;
TimeDate[i]=a+b*10;
}
else if(i==6){
int b=(n & B11110000)>>4;
TimeDate[i]=a+b*10;
}
else{
int b=(n & B01110000)>>4;
TimeDate[i]=a+b*10;
}
}
temp.concat(TimeDate[4]);
temp.concat("/") ;
temp.concat(TimeDate[5]);
temp.concat("/") ;
temp.concat(TimeDate[6]);
temp.concat("Â Â ") ;
temp.concat(TimeDate[2]);
temp.concat(":") ;
temp.concat(TimeDate[1]);
temp.concat(":") ;
temp.concat(TimeDate[0]);
 return(temp);
}
 //===================================================================================
void SDTest() {
 File myFile;
 SD.begin(sd_pin);
Â
  // we'll use the initialization code from the utility libraries
 // since we're just testing if the card is working!
 if (!card.init(SPI_HALF_SPEED, sd_pin)) {
  Serial.println("initialization failed. Things to check:");
  Serial.println("* is a card is inserted?");
  Serial.println("* Is your wiring correct?");
  Serial.println("* did you change the sd_pin pin to match your shield or module?");
  return;
 } else {
 Serial.println("Wiring is correct and a card is present.");
 }
Â
  // print the type of card
 Serial.print("\nCard type: ");
 switch(card.type()) {
  case SD_CARD_TYPE_SD1:
   Serial.println("SD1");
   break;
  case SD_CARD_TYPE_SD2:
   Serial.println("SD2");
   break;
  case SD_CARD_TYPE_SDHC:
   Serial.println("SDHC");
   break;
  default:
   Serial.println("Unknown");
 }
 // Now we will try to open the 'volume'/'partition' - it should be FAT16 or FAT32
 if (!volume.init(card)) {
  Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card");
  return;
 }
 // print the type and size of the first FAT-type volume
 uint32_t volumesize;
 Serial.print("\nVolume type is FAT");
 Serial.println(volume.fatType(), DEC);
 Serial.println();
Â
 volumesize = volume.blocksPerCluster();  // clusters are collections of blocks
 volumesize *= volume.clusterCount();   // we'll have a lot of clusters
 volumesize *= 512;              // SD card blocks are always 512 bytes
 Serial.print("Volume size (bytes): ");
 Serial.println(volumesize);
 Serial.print("Volume size (Kbytes): ");
 volumesize /= 1024;
 Serial.println(volumesize);
 Serial.print("Volume size (Mbytes): ");
 volumesize /= 1024;
 Serial.println(volumesize);
Â
 Serial.print("\nOpening File...");
Â
 myFile = SD.open("test.txt", FILE_WRITE);
 if (myFile) {
  Serial.print("Writing to test.txt...");
  myFile.println("testing 1, 2, 3.");
// close the file:
  myFile.close();
  Serial.println("done.");
 } else {
  // if the file didn't open, print an error:
  Serial.println("error opening test.txt");
 }
Â
 Serial.print("\nReading File...");
 // re-open the file for reading:
 myFile = SD.open("test.txt");
 if (myFile) {
  Serial.println("test.txt:");
 Â
  // read from the file until there's nothing else in it:
  while (myFile.available()) {
  Serial.write(myFile.read());
  }
  // close the file:
  myFile.close();
 } else {
 // if the file didn't open, print an error:
  Serial.println("error opening test.txt");
 }
Â
 Serial.println("\nFiles found on the card (name, date and size in bytes): ");
 root.openRoot(volume);
Â
 // list all files in the card with date and size
 root.ls(LS_R | LS_DATE | LS_SIZE);
Â
 SPI.end(sd_pin);
}
important: The RTC must be initialized every time after using another SPI (Ethernet, SD)!!