GNUpod
Since buying my iPod Photo months ago, I have never updated the songs on it, because I haven't been able to find a decent tool for Linux that works well (atleast for me).
I had tried GTKpod previously, but had found that it overall, it didn't work as well as it should, or maybe it was me not understanding its functionality right.
Anyway, skip forward to the a few days ago, and I was finally getting sick listening to the same songs (and podcasts), over and over again. It was time to change the songs on the iPod. I gathered this meant one of two things; installing gtkpod and trying to get it to work, or borrowing a friends computer with windows on it, to copy on some songs.
Deciding against the later, I was going to install gtkpod again, when i realised that gnupod was there. Tho it is text based, i decided to try it out.
After some minor difficulties with the scripts, mainly relating to case sensitive nature (see the end for more info), due to the default ubuntu flags when it mounted, i finally got the scripts working, and I must say, I am impressed. The advantage is they are perl scripts, so they are changable to customise a bit how I want them.
So this weekend, I might actually put some new songs on my iPod, and be able to listen to fresh G'Day World podcasts on the train each morning.
Note: The problem was because of the default Ubuntu settings for mounts. I didn't have my iPod set up in fstab, so whenever it plugged it, it got these default settings. To fix, it was as simple as adding the "check=r" flag to the mount options, either in fstab, or mounting it manually. See this email thread for more information.
Also, Ubuntu also by default adds the flag "iocharset=utf8", when mounting. It seems that this flag, overrides the check flag. So for now, I have simply removed it. If anyone has a solution to this, would be great, thanks.

