Hrm. So in general I'm not much in favour of trying to handle edge cases not normally produced by using the package normally to avoid doing the wrong thing and ruining state further.
But in this case you've proactively created the bitlbee user (possibly by just migrating your old passwd file) but not the /v/l/bitlbee directory? I guess it's reasonable to have a separate "does the user exist" check and a "does the config directory exist" check, yes.