Just to add in case someone finds this thread through Google...
sed's substitution command can use different characters to delimit the search and replace portions of the substitution. The '@' is no different than '/' in sed's eyes--they are functionally equivalent.
The reason I use the @ by default is because I use a lot of escape sequences in my regexs and sometimes use path components. For my purposes, using the forward slash could make for some ugly, unreadable commands. For instance, to adjust a path of /home/fred/ or /home/barney/ to be /home/backup/fred/ or /hom/backup/barney/ respectively:
echo "/home/fred/" | sed "s/\/home\/\(fred\|barney\)\//\/home\/backup\/\1\//"
echo "/home/fred/" | sed "s@/home/\(fred\|barney\)/@/home/backup/\1/@"
I use the '@' inside my matching far less often than '/' and so, makes sense to use '@' to avoid extra escapes.