could be a few things but sounds like a corrupt partition or your hard drive has an error on the d drive section.
I would first backup anything you need before doing any of this.
i'd start by doing a error check from windows - open my computer, right click the D drive, click properties then tools then error checking, tick both boxes and click start (it may ask to do it next time the computer starts, if so restart) lookout for for any errors.
if that comes back fine and the pc still freezes when accessing the d drive then download
http://mods.smurfsofwar.com/files/mods/SeaToolsDOS217EURO.rar, extract the file and burn the .iso to cd then restart the computer and boot from the cd, it should load (will look like loads of lines of dos to start then it will ask you to accept the disclaimer (if it doesn't find your mouse use the keyboard, just press the key that has _ below it). once in it should find your both your hard drives and it should put a tick next to the first (should be your c/d drive) then go to "basic" and select "long test" this will take about 1 hour per 250GB. it will report any errors as it finds them (test will stop if it gets to 99)
if your hard drive is a maxtor or seagate and it finds any errors it may be able to repair them but if its any other make then it can't but at least you will know what is wrong.
here's a full tutorial for seatools with pics
http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=201271