[The second messsage in the series about Check[]. -smc]
I have run your program through version 1.2 (beta) and do not get the
same results. The session is below. Is there still a bug you want
reported to Wolfram Research or the mailing list?
=====================================================================
In[1]:= test[x_]:= x /; x>0
In[2]:= test::toosmall = "The input to test is too small"
Out[2]= The input to test is too small
In[3]:= test[x_] := Message[test::toosmall]
In[4]:= Messages[test]
Out[4]= test::toosmall -> The input to test is too small
In[5]:= test[5]
Out[5]= 5
In[6]:= test[-4]
In[7]:= y = Check[test[7],meaningless]
Out[7]= 7
In[8]:= y = Check[test[-7],meaningless]
Out[8]= meaningless
In[9]:= y
Out[9]= meaningless
In[10]:= FullForm[y]
Out[10]//FullForm= meaningless
In[11]:= Quit[]