creating table result in errno 150
As was stated in the comments by @yercube, you have a case sensitivity issue.

SOLUTION #1

Create the first table with the name Staff

CREATE TABLE Staff(
   StaffID INT AUTO_INCREMENT PRIMARY KEY,
   FirstName VARCHAR(15) NOT NULL,
   LastName VARCHAR(15) NOT NULL,
   Address VARCHAR(30) ,
   City VARCHAR(15) ,
   State VARCHAR(3) ,
   Position VARCHAR(20) NOT NULL,
   Wage INT NOT NULL
);


Then, create the other two tables. It should work.

SOLUTION #2 (based on @ypercube's suggestion)

Keep the table staff, but create the other two like this:

CREATE TABLE projects (
    StaffID INT NOT NULL,
    ProjectName VARCHAR(20) NOT NULL,
    Allocation INT NOT NULL,
    PRIMARY KEY (StaffID, ProjectName) ,
    FOREIGN KEY (StaffID) REFERENCES staff(StaffID) ON DELETE CASCADE
 );

CREATE TABLE staffphone (
    StaffID INT NOT NULL,
    PhoneNumber VARCHAR(15) NOT NULL,
    PRIMARY KEY (StaffID, PhoneNumber) ,
    FOREIGN KEY (StaffID) REFERENCES staff(StaffID) ON DELETE CASCADE
);


Give it a Try !!!