Of course it shouldn't.
A possible fix for this is available at <https://github.com/kevin-dot-pyle/lxc/commit/e38d7aab367b8b389dcba05d93f44ab345a533c9>. The change drops the logic which dies on missing /usr/src/linux, drops the code to build setns.h, and changes the one use of setns.h to instead include asm/unistd.h to get __NR_setns. It works-for-me on amd64 with linux-headers-3.2.
Thanks Kevin, that works like a charm, in tree now on 0.8.0_rc1-r4 (yes it was always rc1, rc2 is tagged but upstream didn't release it. I guess I might just have to release it myself. Or more likely I should join forces with you and we can get our own LXC fork at this point.