Is there an easy way to discard data on a layer that is outside the size of the canvas? If I have a graphic layer I imported from a digital photograph, I can scale and position it as necessary, then I want to get rid of all the image data that lies outside the edge of the canvas.
You can simply "select all", then crop.
It will cut off all exces graphics on all layers.
If you want to do it on only 1 layer, I think the easiest way would be select-all, then Float the layer with control-J (or Command-J on mac)
It will create another cropped layer above the one you've selected, so you'll have to throw away the first one.