This problem is also very tedious if you are using a BT Home Hub where the DNS and Gateway are 192.168.1.254!! rather than the assumed 192.168.1.1.
So if you want to use UDP to get NTP or similar and then put it out on your intranet using DCHP works fine (if you can afford the programme space overhead),
but 'Ethernet.begin(mac,ip);' doesn't want to know. You cant be lazy and have to use the full 'Ethernet.begin(mac,ip,dns,gateway,submask);'