Personally I usually solve this by having a file called dir.info
in every directory that has some text stating what the directory is there for.
However, if you need to create specific, empty, directories after a checkout with those directories possibly being specific to specific branches I would suggest git post-checkout hooks are made to order - you can have a list in your top level directory of the empty directories that are needed and not needed and with about 5 lines of python you can create them if required and delete those that are not.
I would probably do something like having -
or +
in the first char depending on which should be removed or added.
Something like, (with the error handling added):
import os
dirlist = open("Dirlist.Name", "rt")
for line in dirlist:
flag = line[0]
name = line[1:].strip()
if flag == '+':
os.makedirs(name)
elif flag == '-':
os.removedirs(name)
else:
print "Ignored:", line