Not sure how this one got through quality control, as the explanation is entirely wrong.
The value of '1900-01-01' does not arise because of any default - the default will not come into play becauise a value has been specified, and in any case the default is getdate().
The value arises because the specified value ' ' is implicitly cast to datetime, and casting an empty string to a date gives that value.
select cast(' ' as datetime)
will give '1900-01-01 00:00:00.000'