Default value is only going to take effect for a new record. For a new record, it will always be null, so you don't need the IIF. If you're wanting an existing record that is Null to have its value updated, then you'll need to use an event to trigger the recalculation of that field.
I've forgotten all the ins and outs of what events happen in what order at the end of updating a record. June7 or rpeare may have that in the front of their brains and chime in.
Possibly the BeforeUpdate Event of the form?
You'd have VBA to check the value of the control that was bound to your DateCheckedOut
Code:
If IsNull(txtDateChecked) Then
txtDateChecked = Date()
End If
You'll have to decide whether you want a date or a timestamp, and code accordingly.
Can you tell us specifically under what circumstances you do want a record with null checkout date to be updated, and when you do not? Think of all the different ways that a user could leave the screen, or leave the record, after updating or not updating the record. Decide the behavior you want, and that will determine how many events you need to put code in. (If me.dirty, etc)