You have two main options:
The bad one: use something like pscp which allows you to send the password. From man pscp:
-pw password
Set remote password to password. CAUTION: this will likely make
the password visible to other users of the local machine (via
commands such as `w').
This will require you to have the password in the crontab file, which is a simple text file and that is not a good idea. On my Debian, with pscp 0.63, the password is actually masked in the output of w and ps &co but based on the man page quoted above, you cannot assume that will always be the case.
The better one: setup passwordless ssh for the user who needs to run the scp command. If you don't want to do that for your regular user, just create a new user and run the crontab as that user.
Alternatively, you can set it up the other way around. Instead of having a user on machineA copying a file from machineB, have a user on machineB copy the file to machineA instead.
Yes, you can do this with an expect script but the same security issues will apply if you want to include the password in the script.