You're calling the right method but as Guffa says, you're passing it invalid parameters.
Try something like this instead:
this.Page.ClientScript.RegisterClientScriptInclude("myKey",
"/Public/JS/FailLogin.js");
Or if you want inline script:
this.Page.ClientScript.RegisterClientScriptBlock(GetType(),
"myKey", "alert('whatever')");
Or to pass in some more dynamic script:
string name = "Joe";
string script = "alert('Your name is" + name + "')";
this.Page.ClientScript.RegisterClientScriptBlock(GetType(),
"myKey", script);
Please note that in the last example you most JavaScript encode the value of the "name" field. Depending on the version of .NET, one way to do it is this:
string encodedName = JavaScriptSerialize.Serialize(name);
And then pass the encoded name to the "script" variable.
You can even call both methods if you want to both include a JS file as well as run some code that depends on the newly included JS file (the script include should be rendered before the script block).