The purpose of \newcommand in LaTeX is exactly to protect users from redefining a command that can be very important for the system.
For instance, if one tries to redefine \fi, all sorts of strange things will happen, starting from LaTeX throwing an error when finding \begin{document} and telling
Missing \begin{document}.
Really. :)
The command \rule is used in the LaTeX kernel when typesetting footnotes and redefining it will break the feature. Classes and packages may use \rule as well: it appears 14 times in memoir.cls.
In some cases it's good to redefine also kernel commands; Heiko Oberdiek's packages do it frequently and for this the package letltxmacro has been devised. However users should know precisely what they're doing, and never change the command syntax (the number and nature of arguments).
It's quite strange that you get an error, because your code works for me. However, don't use it. Rather define a personal command such as
\newcommand{\blank}[1]{\rule{#1}{0.4pt}}
You'll have only benefits from this: you give semantic value to your code.
\newcommand{\blank}[1]{\rule{#1}{0.4pt}}– egreg Dec 02 '11 at 20:36memoir. Moreover, the example given had no mention of the scope. Using something else (like your suggestion) would work fine. – Werner Dec 02 '11 at 20:38\let\phi\varphiis OK, but redefining\parboxwould be disastrous. – egreg Dec 02 '11 at 20:42\newcommand{\blank}[1]{\rule{#1}{0.4pt}}works great. Thanks! – jamaicanworm Dec 02 '11 at 20:48