I would imagine that the built in annotations combined with adding jQuery validation would suit most of your business requirements.
For example, your second one can be achieved using [Required]
For the ones that require something a little extra (like the first scenario you mentioned), you could either take a look at Remote
validation or implement your own annotations (but that gets a little trickier when hooking into jQuery validation to add your new annotations).