Can't connect to ethernet using ethernet shield

I'm having a trouble connecting my arduino uno to the ethernet using ethernet shield.
The situation is as follows: when i connect my arduino to the ethernet in a certain home network it works fine, when i try it in another home network
it fails ! for example i try the built-in example DhcpChatServer and it's always stuck at "Failed to configure Ethernet using DHCP".
Basically the laptop,arduino,ethernet shield and all the cables are the same in the two home networks. The only thing that's different is the router itself
that i connect my ethernet cable to.

So is there a specific setting in the router that i should check?
or is it a compatibility issue (ethernet shields are not compatible with some routers)
or maybe the shield is faulty?

what i have already checked :

  1. No sd card is in the sd slot
  2. DHCP server is enabled in both home network's routers
  3. The 3 LEDs of the ethernet on the shield are on correctly
  4. when i tried the static ip (Ethernet.begin(mac, ip)) it gives out the correct Ethernet.localIP() but when i enter it in the browser it doesn't work

Some cheap ethernet shields have incorrect resistors between the w5100 and the RJ45 socket. That causes them to generate a very weak signal that some routers and switches have problems receiving.

Thanks so much for your reply.
so do you think i could try out my shield on some routers and its working fine , while on others won't work ? and if you think so would the wifi shield for the arduino resolve this issue for me ?!

Maybe on both.