[eluser]OverZealous[/eluser]
There's nothing wrong at all, but one thing you should look at is the DataMapper example for validating the password (using confirmpass).
You can actually create a validation field that doesn't map back to the database field, and use it in validation.
The rule would look something like this:
Code:
array(
'field' => 'confirm_username',
// notice: not using 'required' so it doesn't error on other updates.
'rules' => array('matches' => 'username');
}
Of course, you'll probably want to include a check to make sure it isn't empty.
You might be doing all of this already.
Beyond this, there's nothing at all wrong with having "fake" fields on your object. I use them all the time, for much the same purpose.