Assuming that it is not because you are forgetting to update the file's georeferencing after georeferencing it (so when you close the map all your hard work is lost), I suspect it is down to you .aux file getting out of sync. This problem has been around since Arc 8.x and persists with 10. When you open a raster in ArcMap it creates an .aux file automatically if one does not exist. The .aux file is used to maintain the georeferencing regardless of whether you have a world file or georeferencing embedded in the file header.
A naive example of how the .aux can get out of sync could be thus: Suppose you open your unreferenced raster to look at it. ArcMap spawns a .aux without telling you. Then you remember that you have a world file and copy that into the appropriate directory. Your .aux file is now out of sync with your georeferencing and the world file will be ignored.
If you have a correct world file, exit ArcMap and manually kill the .aux file. When you restart ArcMap your raster should be in the right place. To be on the safe side, I also kill the .rrd file (pyramids) and any .XML files because the aux contains a pointer to the rrd file and you could be compounding the confusion by leaving it behind. If there is no rrd you will be asked if you wnt to create pyramids when you open the raster again, so no harm done there. Killing the aux will correct the problem but often at the expense of having to re-declare your projection etc (see here for a description of the aux) - so be warned (again - the least of your worries compared to having your georeferencing ignored)!