From BOL
"For stored procedures, SQL Server uses the SET ANSI_NULLS setting value from the initial creation time of the stored procedure. Whenever the stored procedure is subsequently executed, the setting of SET ANSI_NULLS is restored to its originally used value and takes effect. When invoked inside a stored procedure, the setting of SET ANSI_NULLS is not changed."
To get the behavior that you want, SET ANSI_NULLS OFF before creating the stored procedure.
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE x AS
blah blah blah
GO
SET ANSI_NULLS ON
The stored procedure will always run with ANSI_NULLS off.
-Mike