Generally what you have is one website for platforms that may accommodate large screens (PC, Mac, tablets, etc.) and another website for smaller platforms. There is a reason to that.
Most companies I worked with tend to have short-term vision and as such, do not specify at all or/and do not prepare anything for a "lite" version of their website. Only when the full-sized website is ready and alive on the Internet do they start to think about the mobile versions... Now, this mindset is changing slowly but will progressively be in people's (ont only developers, but managers too) minds to think of all platforms at once before starting the development of a website. The fact is that it is generally much harder to design afterwards if it was not foreseen.
Also there is another "technical" reason for developing separate websites. The thing is that since you don't have that much screen space you not only need to effectively use CSS to display information in a user-friendly way, but you may also need to display "less" information, and only the most important one (by the way the "mobile" version of StackExchange is a perfect example of how information should be presented, it looks great!). You can hide secondary information with CSS, but some time will be wasted retrieving this information from your data-access layer, using this information in your dynamic pages... and then hiding it with CSS because it is not displayed on smaller screens. Time is money. We all know what happens when a website takes too long to load, we just don't use it anymore.
Now, we can all agree that it is achievable only with CSS (and some client and server side browser detection) but you need to develop your website keeping that goal in your mind from the start. Often you will realize for example that your navigation system with big menus and such cannot properly work on mobile phones, that your pictures take too much space/size, that your HTML code is ugly, etc. This is often the case of websites that exist for some time already, but not necessarily. This may be also because sometimes is "cleaner" to have separate websites/views.
That is why you so often have to make a decision between hacking mobile-specific CSS into your full fledged website, OR quickly developing a "lite" version for smaller screens.
Edit: I forgot to explicitly answer the question. My answer is that browser detection (client-size with JS AND server-side) and CSS are in fact used to display different views of your website depending on the size of screen readers.
Finally: check out this article, it has examples of the different approaches one can take to create a mobile version of a website.