Sometimes, and I have no idea really what the cause is, but FCP can essentially get a file's info "stuck", almost like there's a symlink between it and a particular clip.
For example, take a look at this:
You can see that clip 6 has the exact same duration as clip 10. Only it shouldn't. And FCP will still treat it as if it's that length by playing black past that point. What happened here is that clip 10 used to be named clip 06.
An editor came along and simply renamed clip 10 to clip 06 and for some reason FCP still thinks it's the duration of it's former self. I don't know if this editor used FCP's renaming function or did it in the Finder, however.
Either way, you can highlight the clip in the bin and then goto Tools>Analyze Movie>Clip and see that FCP knows the actual duration of the clip, but in the bin, in multiclips and in the timeline it will seemingly forever play it back with the wrong duration.
The solution is to treat the clip as if it were symlinked. So you have two options:
01) Delete the errant clip from the Bin. Then either...
02) Copy the clip in the Finder to another place or folder or drive, then copy it back to where it should be, overwriting (or after tossing out) the original file. Then drag it back into your Bin. Or...
03) Simply, (after deleting it from the Bin) move it to another location, drag it back into the Bin, confirm the duration is okay, then delete it from the Bin, move it back to where it should be, then drag it back into the Bin.
For me for one particularly stubborn clip step three was completely necessary. FCP kept thinking it was the wrong clip until I told FCP it was now here, then there in the Finder.
While I'm not sure what causes this behavior, it seems likely it's the result of a multiclip project going from Leopard to Snow Leopard with a renaming session in between.