I have a model class called "Usuario" that stores user information belonging to a database table with that name.
When I add a new user, I show a form to add the information. I have in that form 2 fields to allow specifying the password. Only in that case, password must be required.
When I am editing a user, password fields are not showm so that, these fields don’t have to be required.
Further more when you then instantiate the class in your action like:
$form = new User;
You will need to define the scenario:
$form = new User;
$form->scenario='scenarioYouDefine';
That’s how to apply the scenarios you make. So you could define multiple scenarios in your one model class and then depending on the action, call a different scenario when you instantiate the class.