It is an expected assumption that velocity of light is constant to all observers, irrespective of the fact they move at different velocities with respect to each other.
Special relativity was introduced to solve the anomalies that arise from the fact of constant speed of light. This solution incorporates controversial principals like, time dilation, length contraction etc. This also leads to more controversial predictions like time travel etc. But Special Relativity gives rise to many contradictions, one is twin paradox, another is, if moving clocks runs slower, when two clocks moves relative to each other, which one is slow relative to the other?
There are other explanations that could explain consistency of speed of light without Special Relativity. Further in the light of new thought experiments, Wheeler's delayed choice experiment and Bell's inequalities, and after having experimental proof of these, I also have some thought experiments that can give other dimensions to this question.
Carefully consider the consistency of speed of light. Say there is a source of light and there are two observers. One observer is stationary to the source of light and the other is moving towards the source. One important fact ignored in special relativity experiments is that each observer will see a different set of photons from the same source of light. These two sets are fully independent and we cannot draw conclusions based in correlating the observations of each different observer. Having said that, it should be pointed that special relativity treats light only as waves. Most of the predictions of special relativity can be accepted if we treat light as electromagnetic waves not photons as in quantum theory. Now both observers, the stationary one and the moving one, should see that speed of light from the source as the constant c. This is strange, how can this happen? The photon needs to know the velocity of the observer! The photon needs to know it at the time it leaves the source. But at the time the photon leaves the source, it definitely don't know which observer it will be observed. In fact it will have to know the velocity of all potential observers. But it cannot move with multiple velocities to suit each observer. Stranger than that what will happen when an observer change it's velocity. To change velocity acceleration will come into the scene. This, I presume, is related to General Relativity. Then each photon in the universe will need to know all velocities of the observers and on top of that will have to know all accelerations of the observers.