Hi, Chris,
Awesome detective work! (bows down)
One thing - this may or may not be relevant, but I figured I'd mention it. I tried that code with a datetimepicker control associated with the variable - since the dtpicker doesn't seem to be able to hold a null value, the value of the dtpicker becomes 1/1/1900. If the user doesn't change the date and you want to retain the NULL in the back-end, I believe you'll still need to put some code somewhere (either in a trigger, or in a stored proc, or whether it would be relevant) to convert the value of 1/1/1900 back to null.
Thanks!
Kevin