With plone.recipe.zope2zeoserver 0.9 (not present with 0.8) there is a problem whereby the constructor of the recipe checks for the existence of the zope2-location directory which doesn't yet exist.
The constructor of the recipe gets loaded before the other recipes are run which means the zope2 recipe wouldn't have yet created the zope2 parts directory. So when the installation of the zope2zeoserver recipe gets run it overwrites the sys.path with directories that do not contain the zope2 parts directory so ZEO libs cannot be found. The solution here should be to move the self.ws_locations var generation out of the constructor into the install method. At this point the zope2 parts directory should exist and the checking of said directory will pass.