I just found a somewhat workaround from http://ipython.org/ipython-doc/dev/config/ipython.html
The solution is to add a custom script into the config parameter c.InteractiveShellApp.exec_files in the ipython_notebook_config.py:
c.InteractiveShellApp.exec_files = [
'my_python_code.py',
'my_ipython_code.ipy'
]
This is not updating the new notebook with the latest information at the time of the notebook creation, but somewhat does what I was looking for: injecting custom commands into notebooks without users explicitly typing in "run custom_script.ipy".