All right. Here is another version that works for all cases including JSoftware's one.
[pascal]
function RectInRect(R1,R2 : TRect) : boolean;
var
w,h : integer;
x1,x2,y1,y2 : integer;
begin
w := (R1.Right - R1.Left) + (R2.Right - R2.Left);
h := (R1.Bottom - R1.Top) + (R2.Bottom - R2.Top);

x1 := min(R1.Left, R2.Left);
x2 := max(R1.Right, R2.Right);
y1 := min(R1.Top, R2.Top);
y2 := max(R1.Bottom, R2.Bottom);

Result := ((x2-x1) < w) and ((y2-y1) < h);
end;
[/pascal]

This function uses the fact that if two rects overlap then the difference
between smallest left and biggest right coordinate must be smaller then the sum of their widths. Same with Top and Bottom values.
What is your opinion? Any thoughts on improving?