When winter camping I often fill my Nalgene bottles (usually 2 of them) with hot water, screw the tops on tight and use them as hot water bottles in the sleeping bag - one for the torso and one for the feet. Of course, you can wrap them up in a jumper or sock if they are too hot initially. They stay warm for a good long while and, as a bonus, make sure that you've got drinkable water for a brew first thing.
The one thing that worries me about that is the lid coming off in the night while I'm asleep. If the water is very hot you could be badly burned and at best you'd have wet bedding. But my main reason for chipping in is to say that speaking scientifically, water does have a lot going for it. The heat capacity of water per unit mass is way bigger than anything else you're likely to have so for a given amount of 'stuff', water will keep you hotter for longer. For example, water has a heat capacity about eight times greater than steel, five times higher than granite and three times more than clay. Those comparisons refer to weight, and probably in this application volume is a fairer comparison since you're unlikely to be lugging a sack of nails or stones around with you. Water isn't so dense, but by volume it still wins by a factor of more than two over granite and about 50% over clay. It's about the same as steel by volume although you can't drink the steel in the morning and you probably won't be able to find a convenient lump lying on the ground. Water can get dangerously hot, but nothing like as hot as metals and and rocks can - as we've heard.
The upshot of all this is that I take a couple of hot water bottles with me when I camp in cold weather. My SO made them nice tailored jackets and I stay toasty warm all night.

Without jackets or some other insulation around them, in a sleeping bag you're much too hot at first and they're nearly cold by morning, when I find I a bit of a lift before I crawl out of bed very welcome. Getting technical again, I think I need ten watts or so if the conditions aren't too bad. You can easily get that out of a hot water bottle. For comparison I have a heated jacket for the bike and it gives about 40 watts flat out, which in my winter bike gear (its insulation performance is similar to that of a sleeping bag) is too hot at freezing point with a 100mph wind chill. A human at rest gives off about 80 watts.
Apart from lugging it to the camp site (which doesn't bother me, I travel by motorcycle for most of the camping I do) the only trouble with a proper hot water bottle is that you can't drink the water in the morning. If you want to do that you could use say a 2 litre bottle like the ones they sell water in, but the water wouldn't have to be too hot when you fill it or the bottle would go all wriggly.
Finally a hot water bottle is great for airing damp clothes. Just wrap the damp clothes (or sleeping bag or whatever) around it.