1. Me imagino que tendrás una tabla con los usuarios con un campo ID o un campo que es el "primary key".
Deberías crear una tabla para los mensajes con los siguientes campos:
- id del usuario origen
- id del usuario destino
- asunto
- mensaje
- fecha (opcional)
- leido (opcional)
Con esa tabla tendrías un sistema básico para enviar mensajes entre usuarios.
2. Deberías crear una carpeta específica para cada usuario (la cual se nombre con su ID o su primary key correspondiente).
Un formulario de subida de archivos en PHP:
http://www.desarrolloweb.com/articulos/1307.php
Y para redimensionar imágenes esta clase:
http://www.white-hat-web-design.co.u...e-resizing.php
Un saludo