PROBLEM: New user buys BitCoins and then starts spending them, but at one point does not copy and paste the full BitCoin address into the client, or copies the wrong BitCoin address into the client. The result is that BitCoins are sent into the gutter, never to be retrieved.
SOLUTION: Wrap the send packet with the receiving BitCoin address, so only the receiving BitCoin client can un-encrypt the packet and transmit the packet back out to the network. Thus, the sender can be assured he is sending it to a real client.
EDIT: SECOND SOLUTION: Create client identifiers where a BitCoin receiver can "bill" a sender through the network or to a specific IP.
BONUS SOLUTION:
PROBLEM: A sender may wish to obscure where he is sending his packet from. E.G. Someone sending a large sum to a Falun Gong website monitored by the Chinese government, wishes to hide the sending IP address.
SOLUTION: Similar to the Tor network, give each IP a public and private key. Allow senders to multiply wrap their send packet with public keys and sending IP addresses. The network can unwrap the packet as it is sent from IP to IP until it reaches it's destination. (Add a random time delay and garbage packet buffer at each stop for more protection.)