According to the https://en.bitcoin.it/wiki/Address site, it states that "most" addresses have a private key. Here is the relavent text:
Most addresses have a "private key"
For most addresses, there is a corresponding secret number known as a private key that is required to spend funds previously sent to an address. When using a Bitcoin client, private keys are typically stored in the wallet file. The private key has a special purpose - it is mathematically needed to create valid transactions that spend the funds originally sent to the address. If the private key to an address is lost (for example, in a hard drive crash, fire or other natural disaster), any associated Bitcoins are effectively lost forever.
I have always assumed that Bitcoin worked in such a way that all addresses must have a matching private key due to the public/private key encryption on which it is based. In what cases would a bitcoin address not have a private key?