Conditioning on a SNP is done when you have two (or more) SNPs and you wish to ask the question "is the effect of SNP two independent of the effect of SNP one?". The PLINK documentation describes conditioning on SNP: "for two conditioning SNPs, rs1001 and rs1002 say, and also a standard covariate, the model would be"
Y = b0 + b1.ADD + b2.rs1001 + b3.rs1002 + b4.COV1 + e
"If the b1 coefficient for the test SNP is still significant after entering these covariates, this would suggest that it does indeeed have an effect independent of rs1001, rs1002 and the other covariate." Here the test SNP b1 is the one where we'd like to test independence.
Testing for interaction is done when you have a covariate (which may not be a SNP) and a SNP and you wish to ask the question, "if I add an interaction coefficient to a model that already has terms for the covariate and the SNP, is that interaction term significant?" The PLINK documentation illustrates this with the following model:
Y = b0 + b1.ADD + b2.COV1 + b3.COV2 + b4.ADDxCOV1 + b5.ADDxCOV2 + e
Here the test is not "is my SNP independent of the covariate", but instead "if I have both my SNP and the covariate as terms, do they together exert a stronger effect on the phenotype than I would expect to see through the linear addition of their individual effects?"