Suppose I know that 40% of the population are single but my sampling procedure is non-random and skewed towards singles in a way such that in my sample 60% are single. So my data would not be i.i.d. because we do not draw randomly from the population. But would that violate the independence assumption or the identical distribution assumption?
If you are only oversampling specifically for singles, then this is fixable with poststratification or just some weighting. That happens when you select someone not purely random, but you only take into account whether they are single and select based on that. You should read a bit on that, but you can imagine how "weighing" the observations can correct for such well-behaved random oversampling. That would be relatively straightforward. But this only applies if being single or not is the only thing you take into account.
In inferring nationwide vote percentages from polls, pollers often just call a lot of people based on generating telephone numbers. It's somewhat random, but because some people don't answer or have a phone, they end up with skewed results. So not many young people will pick up a fixed phone for example. To correct for this, poststratification is used, see for example http://www.stat.columbia.edu/~gelman/phd.students/park. This is not a simple procedure, because you have to think of all the variables that influence nonresponse and try to correct for those, or at least, make an informed decisions about which ones to take. This requires expertise.
Whether such a thing might work in your case, depends on the way you have selected people. How random is it?
You ask, does this violate independence and identical distribution assumption? If you use a linear regression, a biased sample does not increase dependence between the errors of the samples I would think, but you sample is definitely not identically distributed to the whole population, that's the whole point, so yes, that one is violated.