An array will take care of all the quoting issues.
[env.sh] options=(-def "hello world")[run.sh]source ./env.sh myprogram "${options[@]}"
export keyword removed since it is unnecessary here and also doesn't work for arrays.
export
You can do this without changing env.sh:
env.sh
IFS=$'"'opt=($options)myprogram "${opt[@]}"