Problema de tipo anulável com?: Operador condicional

Alguém poderia explicar por que isso funciona no C # .NET 2.0:

    Nullable<DateTime> foo;
    if (true)
        foo = null;
    else
        foo = new DateTime(0);

... mas isso não acontece:

    Nullable<DateTime> foo;
    foo = true ? null : new DateTime(0);

O último formulário gera um erro de compilação "O tipo de expressão condicional não pode ser determinado porque não há conversão implícita entre '<null>' e 'System.DateTime'."

Não que eu não possa usar o primeiro, mas o segundo estilo é mais consistente com o restante do meu código.

questionAnswers(5)

yourAnswerToTheQuestion