If you want to run a script during the boot process of one of the OS's proper, you'll have to tackle each OS specifically, although some of them may use more or less the same mechanism.
For Raspbian wheezy, this is init, which then starts the scripts linked from /etc/init.d to /etc/rc[N].d, where N is 2 - 5, but probably 2 by default (see /etc/inittab). Jessie uses a different init system, but it should still be backward compatible with this one. For information about how to add scripts to be run, see /etc/init.d/README.txt or just look around online for "debian sysv init" and you'll find lots of information -- it has been in use in this form for 20+ years (and similar ones since ~1980).
Raspbian does pretty much what you want to do in order to present you with raspi-config the first time you boot. This is done via /etc/init.d/apply_noobs_os_config; if raspi-config then runs successfully, it deletes itself:
if raspi-config --apply-os-config; then
rm /etc/init.d/apply_noobs_os_config && update-rc.d apply_noobs_os_config remove
log_end_msg 0
else
You could follow the same methodology, or you could insert something here to run after raspi-config, or, if you are comfortable enough with shell speak, you could modify /usr/bin/raspi-config; it is fairly simple and uses something called whiptail for the TUI menus, etc.
If what you want to do does not require user interaction, things may be even easier depending on where you are sourcing whatever data it is you need.