I have a very large form I need the user to complete. They need to be able to save their progress whether valid or not. When they have come back at a later time, they can update and make valid - then submit the data.
I am using client side scripting (xval), server side attributes on the domain model.
One option for you is to have a [Save Draft] button which would go to a different Action SaveDraft() instead of Save(). By having a separate method, you can decide on the amount of validation you want on the Save operation. That I think is cleaner.
To have the same Save action decide whether to apply the amount of validatation logic would be harder to read and maintain.