i figured out a fairly straight forward way. i use script triggers to set global variables that i then use to init the fields. no layout testing, i just have to be sure the globals are reset to defaults after i leave the special layouts.
An alternative approach is to define auto-enter calculations that use Get ( LayoutName ) in a Case function to determine the value to enter into the field when the record is first created.
You may also be able to just enter a single value into a single field and then the other fields use looked up value settings to copy data from a related table. That single value would be the needed match field that determines which related record supplies the data to the look ups.