I have created a sample token contract (https://www.ethereum.org/token#minimum-viable-token) with balanceOf and transfer functions. When I use eth.sendTransaction to transfer tokens from one account to another, everything works as expected. When I use eth.sendRawTransaction (by signing offline with private key of sender) for the same transaction, the transaction gets mined but surprisingly the tokens are not transferred.
I have logged both the transactions using eth.getTransaction(), I am unable to find the issue.