Jeff,
If I had proper documentation for Radioss and the test problem library in BDF and OP2 form, I'd have no problem supporting it. It's a popular-ish version of Nastran. In regards to unpopular versions, no. If someone wants to write an Abaqus to BDF/OP2 converter, it needs to conform to the standard. For now, it'll be NX or MSC.
For the BDF, I thing option #1 is possible, but I dislike option #2. I don't think option #2 reliably addresses things like SET3 cards and grid IDs > 1,000,000 without a lot of extra complexity.
In regards to option #1, I like the syntax because it's very obvious that it's meant for pyNastran. I'd add that it should probably be the first line if it's going to be defined. Another option would be to add something like:
PARAM,NASTRAN,MSC
or
PARAM,VERSION,NASTRAN,MSC
or
PARAM,VERSION,MSC
to the case control/bulk data deck. I tested the first one with an older version of MSC Nastran and it was fine.
The way I'd probably implement the BDF check is read the whole deck and then check to see you don't have MSC/NX specific cards. Then, when you write it out, you can overwrite that option.
Whatever approach is chosen, it should support the BDF and OP2, so a combination of options (e.g. set_as_nx/set_version('nx') and option #1) with set_as_nx overwriting the value in the model might work. There does need to be a default though. I think it has to be MSC as MSC more closely conforms to the standard from 20 years ago.
Steve