Arduino Ethernet Shield Response Process, Time, and Synchronization
I don't have an answer for question 1.

For question 2:

You can add a function to implement an NTP (network time protocol) client.  For example, see the UdpNtpClient article on arduino.cc.  In your setup() or loop() code call the function initially or perhaps hourly or daily to set system time via an NTP time server.  The server's IP address can be hardcoded or otherwise as you like.

For lists of public time servers, see www.ntp.org and pool.ntp.org.

Alternately, you could add a DS1302 or similar clock chip board to your hardware.