The need arises once in a while to check if a value at hand is not initialized.
See for example comments on dotnet/corefx#16122 (comment)
Also, If/when parameterless constructors for structs are introduced, the need for IsDefault check could become more apparent.