How much does a concentration matter?
Not much at all. While there are always a few roles that require expert-level skills in a particular area, the vast majority of jobs require general skills. (And allow for you to pick up skills related to a particular area as you go.)
Having a concentration for your degree will however help you get started in a particular area. (But not preclude you from getting a job in the case you it isn't in your conentation.) For example, I was at Microsoft working on the F# compiler -- a very deep, very technical position. However, when I was an undergrad my college didn't even offer a course in compilers! This required me to do a lot of outside reading/learning, but I was able to be successful in that role.
Examples of concentrations in the real world
These are no way intended to be authoritative answers, but here are some examples on how these concentrations could be useful after you graduate.
Algorithms and Data Structures - This won't come up very often. Most of the algorithms and data structures you use are baked into programming languages and/or have sample implementations. However, you might come across a problem that is impossible to solve without proficiency in this area.
For example, you work at a company which does X and and it costs Y to produce your product. Optimize. Google needed algorithms and data structures to make web search scale. Intel needs algorithms to minimize the complexity of chip layout.
Artificial Intelligence - Very useful, but only in certain domains. AI isn't just about getting robots to play Jeopardy! Many times AI is employed to provide data where there isn't any. (i.e., supervised learning algorithms.)
For example, how do you make your ad campaigns more effective? (Train a model to identify key customers.) Or, given customer shopping preferences (gathered from your 'discount card') figure out how to better place items. The prototypical example is placing beer next to diapers.
- Computer and Network Society - I personally don't have much experience with this directly, but it is obviously very important. Unfortunately, it is also not very applicable to solving general problems.
- Computer graphics and vision - This, like security, is a very important role but also very specific. Computer graphics/vision is used not only for things like 3D games, but also mobile software. You might have seen a demo of an app that recognized text in a different language, translated it, and superimposed the English translation on top.
- Human-Computer Interaction - Super important and useful. Programmers are notoriously bad at design, and a good user experience can mean the difference between a successful application and failure. (E.g., compare early Facebook with MySpace.)
- Game Development and Design - Game development is a very challenge area because it incorporates many other areas such as systems, programming languages, graphics, etc. However, I would urge you not go to into games because you love your X-Box or PS3.
- Numeric and Symbolic Computation - This is used a lot in industrial design and scientific research. For example, building and running simulations about how product X will behave under conditions Y.
Programming languages - Programming languages is essentially a 'solved' problem in Computer Science. While new research does help push the boundaries of what we can do with things like type systems, it isn't like programmers are struggling to write code.
IMHO, there is a ton of value in being a skilled developer. That is, being effective in any language, any runtime environment, and on any hardware environment. A deep understanding of programming languages (and related areas like compilers) will go a long way in helping your programming skills.
- Systems - Surprisingly, there is a lot of active operating system development going on these days. (Windows on ARM, Android, Meego, Singularity, etc.) Not only that, but the concept of 'systems' also extends to abstractions like 'data centers' or 'server farms'. These aren't just a matter of networking a bunch of computers, but understanding how to write software to utilize them effectively.
Hopefully this wasn't too long. But in short, there are a lot of exciting things to learn and do. You shouldn't think of having a concentration as limiting you in any way, rather it is helping make sure you can get a deep foundation in a particular area. (Which might spur your interests in other areas.)