Update on this.
Jeremy Skinner has a
blog post showing a workaround for this issue. Out of the box MVC2 attaches a 'Required' attribute to any non-null field.
There's a property on the validator provider which will switch this behaviour off.
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
Make sure you're using MVC2 RC2, this property doesn't exist in RC1.
Following on from this I saw similar behaviour when the data model used numeric types, the MVC 'Numeric' validator was coming through from the meta data.
In the end I made a small change to the source code. It will check to see if the ignore flag has been set and if it has, standard MVC validators will be ignored.