Well it's not working for me. I've tried it both after importing the private key and by specifying it as the third argument of signrawtransaction. If I have the blockchain it will do it but not without it.
I am guessing that you are missing the scriptPubKey parts of the UTXO's used as inputs (which you normally would get from the blockchain).
Have a play with this:
http://ciyam.org/rawtx_helper.html (and don't worry it doesn't ask or want private keys).
You can find each UTXO's scriptPubKey through blockchain.info (starting with an address then click on a transaction with an unspent output and click the "Show scripts & coinbase" link - the scriptPubKeys will appear at the bottom left of the page).
It seems my first reply was not clear so let me just expand the steps to create, sign and send a raw tx as I do it with CIYAM Safe:
1) Find your UTXO information (you can do this using "listunspent" via bitcoind with a blockchain or using blockchain.info).
2) Select the destination address(es) and amount(s).
3) Issue the "createrawtransaction" command.
4) Add the scriptPubKey(s) to the rawtransaction in order to create the "signrawtransaction" command.
5) Issue the "signrawtransaction" command (this part requires the private keys to either be in the wallet or explicitly included).
6) Send the raw tx via "sendrawtransaction" (perhaps you might want to do a "decoderawtransaction" first to double check it).
You are needing blockchain information to get the UTXO information (txid, vout and scriptPubKey) but you do not need a blockchain to issue any of the raw tx commands themselves.