Validación condicional en modelo en MVC

Tengo una vista y un modelo que uso tanto para la edición como para la página de inserción de un registro. Uno de los requisitos del negocio es que se requiere cierto campo en la edición pero no en el nuevo. Originalmente, antes de que esta característica en particular se agregara al expediente, tenía el modelo así:

[Required(ErrorMessage = "*")]
[Range(0.0, (double)decimal.MaxValue)]
[DisplayName("Cost")]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public decimal ProposedCost { get; set; }

Me gustaría eliminar la propiedad requerida si es un formulario de inserción o agregarla si se trata de un formulario de edición. ¿Cuál es el mejor enfoque? Toda mi otra validación se hace como arriba. ¿O puedo alterar el estado del modelo? ¿Pensamientos?

EDITAR

Algo que debo aclarar es que todavía se les permite insertar un costo en el nuevo, pero no es necesario.

Respuestas a la pregunta(4)

Su respuesta a la pregunta