You can sort of bit bang the slave selects, i.e. connect all the devices with shared MISO/MOSI/SCLK and ground but separate CS. Just set CS low for the device you want before calling the SPI driver. The SPI driver will try to set an CS but won't know it is not connected.
The Pis with the 40 pin expansion header have another SPI device with 3 chip selects. My pigpio library supports that device.
You can software bit bang the whole protocol.
You can add additional hardware to switch the CS line to any device you want.
EDITED TO ADD
The "proper" Raspberry Pi Linux SPI driver is currently going through review to allow arbitrary gpios to be used as CS.
EDITED TO ADD 2
The current Linux SPI driver (spi_bcm2853) is said to support arbitrary GPIO as chip selects. See /boot/overlays/README.