According to this answer in the notebook startup a process is forked and looses the sys.path prepared by buildout. The same solution should apply to your case as well.
Edit: I settled on adding an initialization keyword to my "development" recipe:
[development]
recipe = zc.recipe.egg
eggs = ipython[all]
# ugly work-around needed for ipython nootbook
initialization =
import sys, os
os.environ['PYTHONPATH'] = ':'.join(sys.path)
Much more clean and it mostly work.