Find or take a picture of a smooth even fabric. I went on Google Image Search and found an image which i've altered (levels, grayscale) to this version:
Download this image and save as PSD file, or download my version.
Then open the image of the flag you're going to use. I downloaded this image of the Union Jack:
It's a fancy version with a vignette effect, but it's still a flat image. Let's change that!
Go to Filter > Distort > Displace... and open the next dialog.
Make sure the values are set to the ones shown in this screen. When you click "OK" you need to find the fabric.psd file on your harddrive and select that.
After selecting the fabric.psd the flag gets distorted. It looks a little like it's flowing in the wind, but it misses the depth.
Open your fabric.psd, copy the contents and paste this image as a new layer above your distorted flag. If the dimensions of both images don't match resize your fabric image to make sure they do.
Open up the blending mode dropdown and select "overlay".
And that's all! Your finished!
Try to play with the blending modes to create different versions. Setting it to "Hard Light" gives the flag a completely different look: