Do not dirty the record before the user does.
If you want to open a form positioned to a specific record, use the Where argument of the OpenForm method.
If you want to populate a foreign key on a form that you pop up to add new records, use the form's BeforeInsert event. That way, the form will not be dirtied until the user actually types something himself. When you dirty the form all by yourself by putting your code into events that occur BEFORE the user enters data, the user will get confused if he attempts to close the form and your validation code kicks in and complains about missing or invalid values. From the user's perspective, all he did was to open a form. HE didn't change anything. Of course if you have no validation code, then the form closes and you just saved a blank record. Both are bad outcomes.
The other problem with using the load event or any event prior to BeforeInsert is that you can only enter a SINGLE record since the event fires only once. That may not be a problem if the user will only ever need to enter a single record, but you need to ensure that the user isn't able to scroll to a new empty record if you only want him to enter a single record.