Be careful with this warning messengermessage from R. Take a look at this blog post , by Andrew Gelman, and you will see that it is not always a problem of perfect separation, but sometimes a bug with glmglm. It seems that if the starting values are too far from the maximum likelihood-likelihood estimate, it blows up. So, check first with anotherother software, like Stata.
If you really have this problem, you may try to use Bayesian modeling, with informative priors.
But in practice I just get rid of the predictors causing the trouble, because I don't know how to pick an informative prior. But I guess there is a paper by Gelman about using informative prior when you have this problem of perfect separation problem. Just google it. Maybe you should give it a try.