Is there a way to run this logistic regression with separation? I want to run a logistic regression with a binary outcome (correct vs incorrect) and three predictors: condition (2 levels: A and B), and time (2 levels: before and after), and their interaction. I've run into a problem, however, in that the model gives meaningless parameter estimates with huge SEs. I'm pretty sure the reason is that for one level of the condition predictor the outcome is always correct. Alternatively, it could be that there is some missing data (see below) but my understanding is that this shouldn't be a problem for logistic regression. 
The counts are: 


*

*Cond A T1: 28 of 28 correct

*Cond B T1: 23 of 26 correct

*Cond A T2: 30 of 30 correct

*Cond B T2: 24 of 30 correct


Is there a way I can run this analysis? The reason being that if I just use chi-square to compare the counts then it looks as though at T2 there is a significant difference between Cond A and Cond B, but this doesn't account for the fact that Cond B was already doing worse at T1. I'd also like to test for a main effect of condition.
EDIT: I realize I didn't model the within-subj variance, which I can do with this code by adding it as a random effect in a mixed model: 
glmer(df$outcome ~ df$condition*df$time + (1|d$ID),       family=binomial(logit))

However I get an error message that the "model is nearly unidentifiable: large eignenvalue ratio". Additionally, the estimates are identical whether I use this model or the one where I didn't model within-subject error as a random effect, which made me wonder if I was doing something wrong. There was, however, some variance associated with this term so maybe it's fine (aside from the error message)? 
 A: As answered above, you seem to be handling within-subject correlation by assumption it's zero.
But to the original question there is no reason to abandon the model or the parameter estimates in the case of complete separation.  The estimations of $\beta$ are still valid.  As stated above they will result in probability estimates of 0 or 1.  Standard errors are not valid.  So you have the Hauck-Donner effect.  You can still get completely valid hypothesis tests using likelihood ratio $\chi^2$ tests, ignoring the standard errors.
A: Logistic regression seems wrong as it would assume independence between the observations at time t1 and t2 (I assume these are the same subjects). Either t1 could be a factor in the model for t2 (or vice versa) or you would want a generalised linear mixed model (GLMM) or could use GEEs. Also,  you probably cannot ignore the missing data of people with a response at t2 that do not have a response at t1 except under some extremely strong assumptions (MCAR). A GLMM would implicitly impute the missing data under a specific MAR assumption, which at least allows the response at one time to influence the missingness at the other time. 
Regarding the separation, one thing that would help is a Bayesian approach with at least weakly-informative priors.
A: The other answers are helpful from a general perspective, but there is an additional consideration for this data set: it's too small.
Note that you do not really have 114 informative data points from the perspective of logistic regression. The effective data size in logistic regression is the smaller number of the 2 outcome classes. That's only 9 in this data set (the "incorrect" cases). Based on the rule of thumb of 10-20 of the least-frequent case per predictor variable evaluated, that's barely enough to support analysis of the main A versus B effect. Treating the 30 individuals as a random effect in a mixed model adds at least 1 more predictor to the model (if only differences among intercepts are of interest) and adds 2 predictors if you also care about differences in slope (as you seem to, given your initial attempt to look at the treatment/time interaction). So you really need about 3 times as much data to accomplish what you want.
A: Yet another approach would be to use Firth's bias-corrected logistic model. It is outlined in

@ARTICLE{firth93,
  author = {Firth, D},
  year = 1993,
  title = {Bias reduction of maximum likelihood estimates},
  journal = {Biometrika},
  volume = 80,
  pages = {27--38},
  keywords = {glm}
}

and is available in R and Stata at least.
I am not sure that the sample size you have is a issue at this point, you would not design a study to have this size knowing the prevalence of your outcome but now you have the data you have to do the best you can with it.
A: Your diagnosis is correct. Since you are using a model with two main effects, one interaction, and (I presume) one intercept, you have as many parameters as conditions. Your model will fit itself exactly to the empirical results under each condition: it will predict a probability of 28 / 28 = 1 for Cond A T1, et cetera. For a logistic regression to predict a probability of 1 or 0, some combination of the coefficients must go to the logit of 1 or 0, which is $\pm \infty$. 
It doesn't seem profitable to analyze these data on a logit scale. I'd suggest you look instead at the the risk difference between the groups. You can test first for a difference between condition A and condition B using a simple z-test like this. You can also test different times within condition B with same method. 
One warning: the normal approximation may not work great given your low counts. 
In my opinion, there is not too much point in looking for a main effect of time. On a risk-difference scale, the model with intercept, condition main effect, and a condition B : T2 indicator can explain as much of the observed variation as anyone possibly could with those covariates.
