dim D as datetime
は、d = nothing としてもだめで
isDate(d) としてもtrue となってしまいます
D を初期化し、未設定の判定はどうすればできるのでしょうか?
質問の意図がよく分かりませんが、Nothing を代入したいのであれば
Dim d As Nullable(Of Date) = Nothing 'VB2005/VB2008
Dim d As Date? = Nothing 'VB2008
Dim d? As Date = Nothing 'VB2008
のように、Null 許容型にすれば良いかと。
http://msdn.microsoft.com/ja-jp/library/ms235245.aspx