I think, in part, this is why warnings were introduced - though there's a semantic difference, I suppose.
The least intrusive way I can think of doing this would be to perhaps provide a field in the business object for _suppressInvalidity and then override IsValid to accomodate this. Then, you could perhaps provide a method for SaveWithErrors or something like that which would set the flag, do a base.Save(), and then change the _suppressInvalidity back to false.
I'm sure others have had a need for it and have solved it with more rigor, though - so I'm sure there are potentially better ideas than that.