Das Design fängt man am besten mit einem Stift auf einem Blatt Papier an. Im Grafikprogramm digialisierst du deine Ideen und fügst die in deinem "Code-Layout" zusammen. -> So muss man nich anfangen! 'Ist aber eine solide Vorgehensweise...
Wichtig ist aber, dass du nicht jeden Sch* an Slice-Grafik ins Layout packst. So ziemlich alles außer Raster-Grafiken kann man heute auch im Code festlegen (zb. Canvas oder SVG).
Und nimm bloß keine Tables im HTML-Design! Für sowas gibt es die (mittlerweile sehr ausgereiften) DIV-Techniken und für die faulen Coder auch zig Frameworks.
Die Bilder sollten möglichst in der Größe auf den Server geladen werden, in der sie auch angezeigt werden. Erstens erzeugt der Client pro Caching der Site mehr Traffic als es idealer Wiese angebracht wäre. Du verbrauchst mehr Space auf dem Server und die Grafiken werden bekannter Maßen beim verkleinern auch verpixelt (dazu ein sehr guter Artikel in der vorletzten c't).
Gruß
Andi